티스토리 뷰

1. 우선 구글 계정 가입을 한다.

 

 

2. https://www.google.com/settings/u/1/security/lesssecureapps 

   이곳에 가서 보안 수준을 사용으로 한다.

 

 

3. spring에서 메일 관련 라이브러리를 pom.xml에 의존성 주입

  - javax.mail           mail

  - org.springframework.integration           spring-integration-mail

 

 

4. 스프링 컨테이너인 root-context.xml에 관련 빈을 정의한다.

 

helpMailSendable

JavaMailSenderImpl을 주입받고 실제로 메일을 보내는 일을 

담당하는 사용자 정의 인터페이스

 

JavaMailSenderImpl

메일을 보내기 위하여 여러가지 값을 설정, 제공하는 인스턴스

 

<bean id="helpMailSendable" class="dev.mountaingo.kr.define_object.HelpMailSender"></bean>  

<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="이메일" />

        <property name="password" value="암호" />

        <property name="javaMailProperties">

        <props>

            <prop key="mail.smtp.ssl.trust">smtp.gmail.com</prop>

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

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

        </props>

	</property>

</bean>

 

 

 

 

 

 

 

 

 

HelpMailSender 클래스 실제 메일 보내기 담당

 

소스에 보이는 MimeMessage 타입의 인스턴스는 그냥 

텍스트만이 아닌 HTML의 형태로 메일을 보낼 수가 있다.

@Component 
public class HelpMailSender implements HelpMailSendable{   
	@Resource(name = "mailSender") JavaMailSender mailSender;   
    
    public void sendEmail(String email, String pw) {   
    
    	MimeMessage message = mailSender.createMimeMessage(); 
        
        try { message.setSubject("[안내] 임시 비밀번호 발신 <관리자가 보낸메일>", "euc-kr"); 
        	String htmlContent = "당신의 임시 비밀번호는 <Strong>" + pw + "</Strong> 입니다. 사이트에 접속해서 로그인 후 비밀번호를 변경하세요.<br>"; htmlContent += "<a href='http://localhost:9999/index.choon' target='_blank'>홈으로 이동</a>"; 
        
        	message.setText(htmlContent, "euc-kr", "html"); 
            message.setFrom(new InternetAddress("")); 
            message.addRecipient(RecipientType.TO, new InternetAddress(email)); 
            mailSender.send(message); 
            
            } catch (MessagingException e) { 
            	// TODO Auto-generated catch block e.printStackTrace(); 
                }   
            }   
            
  }

 

Comments
최근에 올라온 글
최근에 달린 댓글
TAG
more
Total
Today
Yesterday