메뉴 건너뛰기

조회 수 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();

}   

}

 

 


List of Articles
번호 제목 날짜 조회 수
38 쿠팡 api 프로젝트 / 적용 테스트 (스프링 부트 / 자바 ) file 2021.03.29 550
37 쿠키와 세션을 이용한 자동 로그인 처리 file 2018.07.04 8970
36 자바 스프링프레임워크 개발환경 설정하기-2편 file 2016.08.18 6490
35 자바 스프링프레임워크 개발환경 설정하기-1편 file 2016.08.18 6839
34 자바 스프링, spring AOP 구현 (xml 방식) file 2016.08.18 6200
33 자바 스프링, spring AOP 구현 (xml 방식) file 2016.08.18 5892
32 스프링을 구성하는 코어 모듈 - core module file 2016.12.08 5119
31 스프링에서 구글맵 연동하기 2018.07.04 4577
30 스프링과 안드로이드 연동5 : (Javascript에서 Android 함수 호출하기) 2018.07.04 3389
29 스프링과 안드로이드 연동4 : (JSON으로 가져오기) file 2018.07.04 5529
28 스프링과 안드로이드 연동3 : ( 서버에서 XML로 반환해 가져오기 ) 2018.07.04 2895
27 스프링과 안드로이드 연동2 : 서버에서 안드로이드로 이미지 가져오기(다운) 2018.07.04 3312
26 스프링과 안드로이드 연동1(Html 소스 가져오기) 2018.07.04 2674
25 스프링, MySQL, MyBatis 연동 - 데이터 조회하기 file 2021.05.06 785
24 스프링, MySQL, MyBatis 연동 file 2021.05.06 127
» 스프링(spring) 메일 발송 :: mailSender 2016.08.18 14879
22 스프링 프로젝트 생성 후 샘플 코드 한글 깨짐 현상 file 2021.03.31 185
21 스프링 외부 경로 폴더 지정하기 2018.07.04 4608
20 스프링 XML 설정에서 자바 설정 Import하기 file 2016.08.18 5071
19 스프링 Bean 객체의 초기화 및 소멸시 호출 메서드 file 2016.08.18 4996
Board Pagination Prev 1 2 Next
/ 2

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved