[java] Javamail로 MIME 형식의 이메일 보내기

이 예시에서는 Javamail을 사용하여 MIME(Multipurpose Internet Mail Extensions) 형식의 이메일을 보내는 방법을 설명합니다.

1. Javamail 라이브러리 추가

먼저 프로젝트에 Javamail 라이브러리를 추가해야 합니다. Javamail을 사용하기 위해 다음과 같이 Gradle 또는 Maven에 의존성을 추가하세요.

Gradle:

dependencies {
    implementation 'javax.mail:javax.mail-api:1.6.2'
    implementation 'com.sun.mail:javax.mail:1.6.2'
}

Maven:

<dependency>
  <groupId>javax.mail</groupId>
  <artifactId>javax.mail-api</artifactId>
  <version>1.6.2</version>
</dependency>
<dependency>
  <groupId>com.sun.mail</groupId>
  <artifactId>javax.mail</artifactId>
  <version>1.6.2</version>
</dependency>

라이브러리를 추가한 후에는 import문으로 필요한 클래스를 가져올 수 있습니다.

import javax.mail.*;
import javax.mail.internet.*;

2. 이메일 보내기

MIME 형식의 이메일을 보내려면 Message 객체를 만들고 이를 전송해야 합니다. 다음은 이메일을 보내는 간단한 예제입니다.

public static void sendEmail() throws MessagingException {
    String sender = "sender@example.com";
    String recipient = "recipient@example.com";
    String subject = "Hello, World!";
    String content = "This is the content of the email.";

    // 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");

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

    // 세션 생성
    Session session = Session.getDefaultInstance(properties, authenticator);

    // 메일 메시지 작성
    MimeMessage message = new MimeMessage(session);
    message.setFrom(new InternetAddress(sender));
    message.addRecipient(Message.RecipientType.TO, new InternetAddress(recipient));
    message.setSubject(subject);
    message.setText(content);

    // 이메일 전송
    Transport.send(message);

    System.out.println("이메일이 성공적으로 보내졌습니다.");
}

위 예제에서는 SMTP 서버 설정, 인증 정보 설정, 세션 생성, 메일 메시지 작성 및 전송 과정을 수행합니다. sender, recipient, subject, content에 적절한 값을 지정하여 이메일을 보낼 수 있습니다.

3. 실행

메인 메소드에서 sendEmail 메소드를 호출하면 이메일이 보내집니다.

public static void main(String[] args) {
    try {
        sendEmail();
    } catch (MessagingException e) {
        e.printStackTrace();
    }
}

이렇게 하면 Javamail을 사용하여 MIME 형식의 이메일을 보낼 수 있습니다.

참고 자료