[java] Javamail을 사용하여 이메일에 커스텀 헤더 추가하기

Javamail은 Java에서 이메일 전송과 관련된 작업을 수행하기 위한 API입니다. 이메일을 보낼 때, 종종 커스텀 헤더를 추가해야 할 때가 있습니다. 이 튜토리얼에서는 Javamail을 사용하여 이메일에 커스텀 헤더를 추가하는 방법을 알아보겠습니다.

Javamail 라이브러리 추가하기

먼저, 프로젝트에 Javamail 라이브러리를 추가해야합니다. 다음은 Maven을 사용하는 경우, pom.xml 파일에 추가해야 할 종속성입니다.

<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>

Gradle을 사용하는 경우, build.gradle 파일에 다음과 같이 추가합니다.

implementation 'javax.mail:javax.mail-api:1.6.2'
implementation 'com.sun.mail:javax.mail:1.6.2'

이메일에 커스텀 헤더 추가하기

이제 Javamail을 사용하여 이메일에 커스텀 헤더를 추가해 보겠습니다. 다음은 예제 코드입니다.

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;
import java.util.Properties;

public class EmailSender {
    public static void main(String[] args) {
        // SMTP 서버 설정
        Properties properties = System.getProperties();
        properties.setProperty("mail.smtp.host", "your_smtp_host");
        properties.setProperty("mail.smtp.port", "your_smtp_port");

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

        try {
            // MimeMessage 생성
            MimeMessage message = new MimeMessage(session);

            // 보내는 사람 설정
            message.setFrom(new InternetAddress("sender@example.com"));

            // 받는 사람 설정
            message.addRecipient(RecipientType.TO, new InternetAddress("recipient@example.com"));

            // Subject 설정
            message.setSubject("Hello, World!");

            // 커스텀 헤더 추가
            message.addHeader("X-Custom-Header", "Custom Value");

            // 메일 보내기
            Transport.send(message);

            System.out.println("메일이 성공적으로 전송되었습니다.");
        } catch (MessagingException mex) {
            mex.printStackTrace();
        }
    }
}

위의 코드에서 message.addHeader("X-Custom-Header", "Custom Value");를 사용하여 이메일에 커스텀 헤더를 추가할 수 있습니다. X-Custom-Header는 커스텀 헤더의 이름이고, Custom Value는 해당 헤더의 값입니다.

결과 확인하기

코드를 실행하고 이메일을 확인하면, 이메일의 헤더에 X-Custom-Header: Custom Value가 포함된 것을 확인할 수 있습니다. 다른 값으로 커스텀 헤더를 추가하려면, addHeader 메소드의 인자를 원하는 값으로 변경하면 됩니다.

결론

Javamail을 사용하여 이메일에 커스텀 헤더를 추가하는 간단한 예제를 살펴보았습니다. 커스텀 헤더를 사용하면 이메일의 추가적인 정보를 전송할 수 있으며, 이는 이메일 전송과 관련된 작업을 수행하는 데 유용합니다.