메뉴 건너뛰기

조회 수 14879 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
자바] 스프링(spring) 메일 발송 :: mailSender

부제 : spring 기반으로 사용자들에게 쉽게 메일 보내는 방법! : java + spring + maven 

 

이번 프로젝트 진행 중 깊은 빡침을 느끼게 했던 메일보내기!

정말 간단. 한것이었는데 거의 삽질의 삽질을 한 듯. @.@@@ 뭐가 이렇게 안되니ㅠ.ㅠ

 

그래서 혹시 도움이 될 수도 있길 바라며 간단하게 정리해 본다. 

이거 완전 간단하다...ㅎ (소곤소곤 나 왜 삽질한거얌...ㅠ.ㅠ?ㅎㅎㅎ)

 

 

1. pom.xml 

 

mail 관련 dependency를 추가! (메이븐 참 편해!)

 

 <dependency>

  <groupId>javax.mail</groupId>

<artifactId>mail</artifactId>

<version>1.4.7</version>

</dependency>

 

 

 

 

 

2. servlet-context.xml 

 

mailSender bean 객체 생성! 

 

 <!-- mail bean -->

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">

  <property name="host" value="메일 host or smtp.gmail.com"/>

  <property name="port" value="해당 포트"/>

  <property name="username" value="메일 ID"/>

  <property name="password" value="해당 메일 비번"/>

  <property name="javaMailProperties">

   <props>

    <prop key="mail.smtp.auth">true</prop>

    <prop key="mail.smtp.starttls.enable">true</prop>

    <prop key="mail.smtp.timeout">8500</prop> // mail 서버 연결시 timeout 시간 설정

    <prop key="mail.debug">true</prop> // log를 보고 싶다면 사용

   </props>

  </property>

</bean>

 

위에 내 소스는 메일 서버가 있기때문에 해당 host, port를 사용했지만 

보통 사람들이 gmail을 많이 사용하기 때문에 gmail mailSender 설정도 적어 놓았다.

 

[ gmail로 mailSender 등록하기 ]

host : smtp.gmail.com

port : 587

username : 이용 메일 서버 ID

password : 해당 메일 비밀 번호

참고 사이트 : https://support.google.com/mail/answer/13287?hl=ko

 

 

 

 

 

3. 메일 코드 작성

(원하는 바에 맞게 수정하여 테스트로 보시길.)


메일 폼 방식에는 2가지(simpleMailMessage, MimeMessage)가 있다.

 

simpleMailMessage : 오로지 String으로 메일을 보낼 때 사용한다. (이 폼으로 html을 보내면 다 깨진다! 조심)

MimeMessage : html, 첨부파일등 다양한 폼의 메일을 보낼 때 사용한다. 


 3.1. MimeMessage 방식 

 

@Autowired

private JavaMailSender mailSender; // xml에 등록한 bean autowired

 

public void sendMail(String from, String to, String subject, String text, String formUrl) throws FileNotFoundException, URISyntaxException {

try{

SimpleMailMessage message = new SimpleMailMessage();

 

message.setFrom(from);

  message.setTo(to);

  message.setSubject(subject);

  message.setText(mailText);

  

mailSender.send(message);

 

}catch(Exception e){

  e.printStackTrace();

}   

}


 3.2. MimeMessage 방식

 

@Autowired

private JavaMailSender mailSender; // xml에 등록한 bean autowired

 

public void sendMail(String from, String to, String subject, String text, String formUrl) throws FileNotFoundException, URISyntaxException {

try{

MimeMessage message = mailSender.createMimeMessage();

 

message.setFrom(new InternetAddress(from)); 

message.addRecipient(RecipientType.TO, new InternetAddress(to));

message.setSubject(subject);

message.setText(text, "utf-8", "html");

  

mailSender.send(message);

 

}catch(Exception e){

  e.printStackTrace();

}   

}

 

 


하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved