준호씨의 블로그

java - javamail 로 이메일 발송하기 기본 예제 본문

개발이야기/이메일시스템

java - javamail 로 이메일 발송하기 기본 예제

준호씨 2018.05.28 22:32

javamail API 를 이용한 기본적인 메일 발송 코드를 구현 해 보자. 아래는 gmail 의 mx 레코드중 하나로 메일을 직접 보내는 예제이다.

final String host = "gmail-smtp-in.l.google.com.";

final String from = "junho85@daum.net";
final String to = "junho85@gmail.com";

Properties properties = System.getProperties();

properties.setProperty("mail.smtp.host", host);

Session session = Session.getDefaultInstance(properties);

try {
    MimeMessage message = new MimeMessage(session);

    message.setFrom(new InternetAddress(from)); // from
    message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // recipients
    message.setSubject("This is subject"); // subject
    message.setText("This is body"); // content

    Transport.send(message); // send

    System.out.println("Sent message successfully");
} catch (MessagingException e) {
    e.printStackTrace();
}

property 를 만들고 각종 값을 세팅한다. 여기서는 smtp host 를 지정하였다. 그리고 그 property 를 이용해서 session 을 만들었다.

그리고 session 을 이용해서 MimeMessage 를 생성한다. message 에 from, to, subject 헤더를 입력하고 setText 로 본문을 입력한다. 그리고 Transport.send 로 메일을 발송한다.

잡담

JavaMail 의 철학이 뭔지는 아직 잘 이해하지 못하겠다. 왜 저렇게 복잡하게 만들었어야 했을까? API 레벨에서 굳이 Property 까지 기본적으로 사용해야 하는건 좀 과한건 아닐까? 그냥 SMTP 접속하고 envelop 정보 입력하고 메일 원문 보내면 될텐데 그냥 보면 좀 쓸데 없이 복잡해 보인다. 내가 아직 JavaMail 을 이해하지 못해서 그럴지도 모르겠다. 이해하게 되면 관련 글을 좀 써봐야 겠다.

0 Comments
댓글쓰기 폼