본문 바로가기
Hot Tech Reference/Spring Framework

spring mailSender를 이용한 메일보내기

by cusmaker 2012. 10. 11.
반응형

설정

 - 메일을 보내기 위해서는 메일서버가 필요하나, 상황이 여의치 않을경우 gmail을 사용하여 보낼 수 있다.

<!-- 이메일 보내기 -->

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

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

<property name="port" value="587" />

<property name="username" value="gmail계정@gmail.com" />

<property name="password" value="gmail패스워드" />

<property name="javaMailProperties">

<props>

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

</props>

</property>

</bean>


사용

 - 어노테이션 기반

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimeMessage.RecipientType;


import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.mail.javamail.JavaMailSender;

@Service

public class mailService{

     @Autowired

     private JavaMailSender  mailSender;

void mailSend(){

MimeMessage msg = mailSender.createMimeMessage();

msg.setSubject("제목");

msg.setText("내용");

msg.setRecipient(RecipientType.TO , new InternetAddress("받는사람 email@domain.com"));     

mailSender.send(msg);  

}

}


이메일 템플릿 작업 시 참고사항(출처 : http://shuiky.tistory.com/303)

1. 메일 도구는 CSS를 정상 지원하지 않는 경우가 있으니 레이아웃을 구성할 필요가 있다면 배치용 테이블을 이용할 것
2. 많은 메일 도구는 HTML의 head 부분을 반영하지 않으므로 <head>에 별도의 요소를 넣지말고, 스타일이 필요할 경우 inline 스타일을 이용할 것
3. 중요한 내용을 담은 이미지의 경우 배경으로 제공하지 말 것
4. 메일 도구가 이미지를 차단할 수 있으니, 가급적이면 중요한 내용은 이미지로 제작하지 말것
5. 이미지가 출력되지 않을 경우를 대비하여 이미지에는 대체 텍스트를 제공할 것
6. 이미지의 경로는 절대경로(전체 URL)로 작성할 것
7. 이미지 파일을 작게 만들고, JPG, GIF, PNG 확장자를 사용할 것
8. 플래시 등의 멀티미디어 파일이 동작하지 않을 가능성이 높으므로 첨부하지 말 것
9. 메일 도구에서 읽을 수 있는 화면의 범위가 좁으므로 폭 800px 이하로 작성할 것