메뉴 건너뛰기

조회 수 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 스프링, MySQL, MyBatis 연동 - 데이터 조회하기 file 2021.05.06 795
37 스프링, MySQL, MyBatis 연동 file 2021.05.06 128
36 Java was started but returned exit code=13 - 이클립스 실행시 에러 file 2021.03.31 154
35 스프링 프로젝트 생성 후 샘플 코드 한글 깨짐 현상 file 2021.03.31 186
34 쿠팡 api 프로젝트 / 적용 테스트 (스프링 부트 / 자바 ) file 2021.03.29 582
33 AJAX 통신시 컨트롤러에서 한글 문자열을 리턴해야하는 경우 인코딩 문제 처리 2018.07.04 2599
32 스프링에서 구글맵 연동하기 2018.07.04 4605
31 스프링과 안드로이드 연동1(Html 소스 가져오기) 2018.07.04 2676
30 스프링과 안드로이드 연동2 : 서버에서 안드로이드로 이미지 가져오기(다운) 2018.07.04 3348
29 스프링과 안드로이드 연동3 : ( 서버에서 XML로 반환해 가져오기 ) 2018.07.04 2896
28 스프링과 안드로이드 연동4 : (JSON으로 가져오기) file 2018.07.04 5534
27 스프링과 안드로이드 연동5 : (Javascript에서 Android 함수 호출하기) 2018.07.04 3392
26 JAVA Crawling(크로울링) 기본([펌]http://partnerjun.tistory.com/guestbook) file 2018.07.04 5112
25 [펌]자바 Crawling(크로울링) 로그인 해 긁어오기 file 2018.07.04 6022
24 [펌]자바 Crawling(크로울링) Ajax로 요청하는 것 긁어오기 file 2018.07.04 2898
23 쿠키와 세션을 이용한 자동 로그인 처리 file 2018.07.04 8979
22 스프링 외부 경로 폴더 지정하기 2018.07.04 4623
21 play framework + 이클립스 초간단 개발환경 구축법 2016.12.08 12480
20 루씬 기본적인 검색 엔진 - 샘플 예제 file 2016.12.08 7771
19 [패스트캣]1. 시작하기 - 설치 file 2016.12.08 5982
Board Pagination Prev 1 2 Next
/ 2

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved