본문 바로가기

프로그래밍/스프링[Spring]

[스프링] 스프링에서 네이버 이메일을 이용한 Email 발송방법



 

안녕하세요 이번에는 스프링 프레임워크에서 간단하게 이메일 발송하는 방법에 대해 알아보도록 하겠습니다.

자 우선 네이버 이메일에서 SMTP 설정을 합니다.

 

순서에 맞게 클릭하시면 간단하게 설정이 가능합니다.

그리고 pom.xml로 갑니다

pom.xml

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>${org.springframework-version}</version>
</dependency>
<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.5.1</version>
</dependency>

 

위와 같이 2개의 라이브러리를 추가하면 됩니다.

${org.springframework-version} 요 부분에는 현재 사용하고 계시는 스프링 프레임워크 버전을 넣어주시면 됩니다.

자 그럼 컨트롤러에 가서 다음과 같이 작성하시면 됩니다.

 

@RequestMapping("/sendEmail.do")
public void sendEmail(HttpServletRequest request, HttpServletResponse response) throws Exception{
        //메일 관련 정보 
        String host = "smtp.naver.com"; 
        final String username = "*******"; //네이버 이메일 주소중 @ naver.com 앞주소만 작성
        final String password = "*******"; //네이버 이메일 비밀번호를 작성
        int port=465;                      //네이버 STMP 포트 번호
        
        //메일 내용 
        String recipient = "*******@naver.com"; //메일을 발송할 이메일 주소를 기재해 줍니다.
        String subject = "이메일 발송시 제목";    //메일 발송시 제목을 작성
        String body = "이름: 홍길동입니다. \n\n"; //메일 발송시 내용 작성
        
        Properties props = System.getProperties();
       
        props.put("mail.smtp.host", host);
        props.put("mail.smtp.port", port);
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.ssl.enable", "true");
        props.put("mail.smtp.ssl.trust", host);
 
        Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { 
            String un=username;
            String pw=password; 
            protected PasswordAuthentication getPasswordAuthentication() { 
                return new PasswordAuthentication(un, pw); 
            } 
        });
        session.setDebug(true); //for debug 
        
        Message mimeMessage = new MimeMessage(session); 
        mimeMessage.setFrom(new InternetAddress("*******@naver.com")); 
        mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(recipient)); 
        mimeMessage.setSubject(subject); 
        mimeMessage.setText(body); 
        Transport.send(mimeMessage);
    }

 

자 그리고 테스트를 해봅니다.

 

해당 URL을 요청하면

 

MAIL FROM .. 하면서 로그가 뜨고 받는 사람의 이메일에 가보면 다음과 같이 이메일이 성공적으로 발송이 된것을 확인할수 있습니다.

 

이상입니다. 감사합니다.