3D Graphic Technical Artist

Spring으로 Email 보내기 본문

업무(~2014)/SpringFramework3.1

Spring으로 Email 보내기

er1ca 2012. 11. 9. 17:48

#1 Spring으로 Email 보내기 위한 bean설정, properties설정 및 Email sending Test 코드


1. context-mail.xml의 빈설정


  <!-- Edit 'mail.properties' to set a valid user and password for the mail sender. -->
  <context:property-placeholder location="classpath:properties/config.properties"/>


<!-- Mail Message -->

<bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage"

      p:from="${mail.from}"

      p:to="${mail.to}"

      p:subject="Mail Test" scope="prototype"/>

      

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

    <property name="host" value="${mail.host}" />

    <property name="protocol" value="smtp" />  

    <property name="username" value="${mail.userName}" />     

    <property name="password" value="${mail.password}" /> 

      <property name="port" value="${mail.ssl.port}" /> 

      <property name="javaMailProperties">     

      <props>         

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

     <prop key="mail.transport.protocol">smtps</prop> 

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

      </props>     

      </property> 

        </bean> 

##### : properties 경로설정

##### : 실제 메세지 내용을 담는 bean

##### : 실제 mail을 보내는 bean


2. emailTest.java JUnit 테스트 코드



 package com.kt.guide.emailTest;


import org.junit.Test;

import org.junit.runner.RunWith;

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

import org.springframework.mail.SimpleMailMessage;

import org.springframework.mail.javamail.JavaMailSenderImpl;

import org.springframework.test.context.ContextConfiguration;

import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;


@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations={"classpath:spring/context/context-mail.xml"})

public class emailTest {

@Autowired

private SimpleMailMessage simpleMailMessage;

@Autowired

private JavaMailSenderImpl javaMailSenderImpl;

@Test

public void mailSenad(){

javaMailSenderImpl.send(simpleMailMessage);

}

}

##### : JUnit 단위 테스트를 위한 설정 

##### : SimpleMailMessage 객체 DI 할 객체

##### : JavaMailSenderImpl 객체 DI 할 객체



3. config.properties 파일의 인자값 초기화

 # Mail Information
mail.host=smtp.gmail.com
mail.tls_starttls.port=587
mail.ssl.port=465
mail.userName= (계정 이메일주소)
mail.password= (비밀번호)
mail.from= (보내는이 이메일주소)
mail.to=(받는이 이메일주소)


#2 호출 흐름


차후 보강하겠습니다. ^^ 


#3 SMTP 서버에 PORT 접근 확인 

[cmd]-[telnet smtp.gmail.com 465]