카테고리 없음

Spring JavaMailSenderImpl를 이용한 이메일전송

iamreo 2013. 4. 10. 18:02
반응형

1. XML설정


<!-- Email Sender -->
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="jeon.soul.com"/>
<!-- mail Server가 인증을 요구할 경우 -->
<property name="username" value="jeon"/>
<property name="password" value="test"/>
<!-- 표준SMTP 25번 포트가 아닐경우 지정한다. -->
<property name="port" value="25"/>
</bean>

<bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage">
<property name="from">
<value><![CDATA[
Tester <test@test.com>
]]></value>
</property>
<!-- 제목 및 내용이 정해져 있을경우 -->
<property name="subject" value="고객님께"/>
<!-- %AGE%은 동적으로 변경하기 위한 변수로 생각하면된다. -->
<property name="text">
<value><![CDATA[
http://www.test.com/test.do?name=%NAME%&age=%AGE%
]]></value>
</property>
</bean>

<bean id="mailSenderService" class="com.jeon.MailSenderService">
<property name="mailSender" ref="mailSender"/>
<property name="mailMessage" ref="mailMessage"/>
</bean>

2. MailSenderService클래스 작성
package com.jeon;

public class MailSenderService
{
private MailSender mailSender;
private SimpleMailMessage mailMessage;

public void setMailSender(MailSender mailSender){
this.mailSender = mailSender;
}

public void setMailMessage(SimpleMailMessage mailMessage){
this.mailMessage = mailMessage;
}

public void sendEmailForCustomer(String title, String email, String msg){
//메시지 사본생성
SimpleMailMessage message = new SimpleMailMessage(mailMessage);

message.setTo(email);

String text = message.getText();
text = StringUtils.replace(text,"%NAME%","성종");
text = StringUtils.replace(text,"%AGE%","29");
message.setText(text);

/* SimpleMailMessage를 빈으로 등록하지 않은경우.
SimpleMailMessage message = new SimpleMailMessage();


message.setTo(email);
message.setSubject(title);
message.setFrom("test@test.com");

String text = message.getText();
text = StringUtils.replace(text,"%TITLE%",title);
text = StringUtils.replace(text,"%MSG%",msg);
message.setText(text);
*/

mailSender.send(message);
}
}

3. gmail 및 daum메일을 이용하여 메일 전송하기

<!-- gmail, hanmail 용 -->
    <bean id="mailSender"
        class="org.springframework.mail.javamail.JavaMailSenderImpl"
        p:host="한메일: pop.hanmail.net, 지메일:smtp.gmail.com"
        p:port="465" 
        p:protocol="smtps"
        p:username="아이디"
        p:password="비밀번호">
        <property name="javaMailProperties">
            <props>
                <prop key="mail.smtps.auth">true</prop>
                <prop key="mail.smtps.startls.enable">true</prop>
                <prop key="mail.smtps.debug">true</prop>
            </props>
        </property>
    </bean>

 

반응형