JAVA에서 네이버 SMTP를 활용해 메일을 발송해보자JAVA에서 네이버 SMTP를 활용해 메일을 발송해보자

Posted at 2017.07.19 08:32 | Posted in IT/Java

JAVA 기반의 SMTP 메일 발송 샘플코드를 기록하는 글이다. JavaMail 이라는 라이브러리를 가져다 쓰자 여기(https://javaee.github.io/javamail/)서 받을 수 있다. 이 라이브러리는 SMTP와 IMAP, POP3을 지원한다.


개발환경 : JDK 1.8.0_111 x64, Windows 7, Eclipse Mars.1 Release (4.5.1), JavaMail 1.6.0


JavaMail에서 받을 수 있는 것들JavaMail에서 받을 수 있는 것들


위에 있는 링크에 가서 javax.mail.jar을 받는다.


라이브러리 추가라이브러리 추가


그 후 이클립스에 프로젝트를 생성하고 SMTP 클래스를 생성한 후 외부라이브러리를 위와 같이 추가한다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package example;
 
import javax.mail.*;
import javax.mail.internet.*;
 
import java.util.Date;
import java.util.Properties;
 
public class SMTP {
    public static void main(String[] args) {
        Properties p = System.getProperties();
        p.put("mail.smtp.starttls.enable""true");
        p.put("mail.smtp.host""smtp.naver.com");
        p.put("mail.smtp.auth""true");
        p.put("mail.smtp.port""587");
 
        Authenticator auth = new MyAuthentication();
        Session session = Session.getDefaultInstance(p, auth);
        MimeMessage msg = new MimeMessage(session);
 
        try {
            msg.setSentDate(new Date());
            InternetAddress from = new InternetAddress();
            
            from = new InternetAddress("sender<sender@naver.com>");
            msg.setFrom(from);
 
            InternetAddress to = new InternetAddress("receiver@naver.com");
            msg.setRecipient(Message.RecipientType.TO, to);
 
            msg.setSubject("title""UTF-8");
            msg.setText("content""UTF-8");
            msg.setHeader("content-Type""text/html");
 
            javax.mail.Transport.send(msg);
        } catch (AddressException addr_e){
            addr_e.printStackTrace();
        } catch (MessagingException msg_e){
            msg_e.printStackTrace();
        }
    }
}
 
class MyAuthentication extends Authenticator {
 
    PasswordAuthentication account;
 
    public MyAuthentication(){
        String id = "id";
        String pw = "pw";
        account = new PasswordAuthentication(id, pw);
    }
 
    public PasswordAuthentication getPasswordAuthentication(){
        return account;
    }
}
cs


SMTP 클래스의 소스코드에 위의 소스코드를 붙여넣는다.


네이버메일에 가서 로그인하고 위와 같이 SMTP를 사용함으로 변경한 후 노란색 체크된 것들을 확인한다.




 그리고 소스코드의 id와 pw, from, to의 값을 자신에게 맞게 적절하게 수정하고 실행하면 위와 같이 메일이 정상적으로 발송된 것을 확인할 수 있다.




저작자 표시 비영리 변경 금지
신고

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기