[java] Javamail을 사용하여 이메일 보내기

Javamail은 자바 프로그램에서 이메일을 보내는 데 사용되는 라이브러리입니다. Javamail을 사용하면 SMTP (Simple Mail Transfer Protocol)를 통해 이메일을 보내고, POP3 (Post Office Protocol) 및 IMAP (Internet Message Access Protocol)을 통해 이메일을 읽을 수 있습니다.

Javamail 라이브러리 추가

먼저 Javamail을 사용하기 위해 프로젝트에 해당 라이브러리를 추가해야 합니다. Javamail 라이브러리는 Maven 또는 Gradle과 같은 의존성 관리 도구를 통해 쉽게 추가할 수 있습니다. 아래는 Maven을 사용하는 경우의 예시입니다.

<dependency>
  <groupId>javax.mail</groupId>
  <artifactId>mail</artifactId>
  <version>1.4.7</version>
</dependency>

이메일 보내기

이제 Javamail을 사용하여 이메일을 보내는 방법을 알아보겠습니다.

import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;

public class SendEmail {
   public static void main(String[] args) {
      // SMTP 서버 설정
      Properties properties = new Properties();
      properties.put("mail.smtp.host", "smtp.example.com");
      properties.put("mail.smtp.port", "587");
      properties.put("mail.smtp.auth", "true");

      // SMTP 서버 인증 정보 설정
      Authenticator authenticator = new Authenticator() {
         protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication("username", "password");
         }
      };

      // 이메일 세션 생성
      Session session = Session.getInstance(properties, authenticator);

      try {
         // 이메일 메시지 작성
         MimeMessage message = new MimeMessage(session);
         message.setFrom(new InternetAddress("sender@example.com"));
         message.setRecipient(Message.RecipientType.TO, new InternetAddress("recipient@example.com"));
         message.setSubject("Hello, Javamail!");
         message.setText("This is a test email sent using Javamail.");

         // 이메일 보내기
         Transport.send(message);
         System.out.println("Email sent successfully.");
      } catch (MessagingException e) {
         e.printStackTrace();
      }
   }
}

위의 코드에서 “smtp.example.com”은 SMTP 서버의 호스트 주소를 의미합니다. “username”과 “password”는 사용자의 인증 정보입니다. “sender@example.com”은 이메일의 송신자 주소이고, “recipient@example.com”은 이메일의 수신자 주소입니다.

마치며

Javamail을 사용하여 자바 프로그램에서 이메일을 보내는 방법을 알아보았습니다. Javamail은 다양한 기능을 제공하므로, 필요에 따라 첨부 파일 추가, HTML 형식으로 이메일 작성 등을 할 수도 있습니다. 자세한 내용은 Javamail 공식 문서를 참고하시기 바랍니다.