[java] Javamail을 사용하여 이메일에 프로모션 코드 추가하기

이메일에 프로모션 코드를 추가하는 것은 고객과의 상호작용과 마케팅 전략에 중요한 역할을 합니다. Javamail 라이브러리를 사용하면 Java 언어로 이메일을 보낼 수 있으며, 이메일 내용에 프로모션 코드를 삽입하는 기능을 구현할 수 있습니다.

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 파일에 다음 의존성을 추가합니다.

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

이메일 전송하기

Javamail을 사용하여 이메일을 보내는 간단한 예제를 살펴보겠습니다. 아래 코드는 smtp.gmail.com 서버를 사용하여 Gmail 계정으로 이메일을 보내는 예제입니다. 이메일 제목과 본문 내용에 프로모션 코드를 추가하도록 하겠습니다.

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

public class EmailSender {
    public static void main(String[] args) {
        String to = "example@example.com";
        String from = "your-email@gmail.com";
        String password = "your-password";

        // SMTP 서버 설정
        Properties properties = new Properties();
        properties.put("mail.smtp.host", "smtp.gmail.com");
        properties.put("mail.smtp.port", "587");
        properties.put("mail.smtp.auth", "true");
        properties.put("mail.smtp.starttls.enable", "true");

        // 세션 생성
        Session session = Session.getInstance(properties, new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(from, password);
            }
        });

        try {
            // 이메일 작성
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress(from));
            message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
            message.setSubject("프로모션 코드 안내");

            // 이메일 본문에 프로모션 코드 추가
            String promotionCode = "PROMO123";
            String emailText = "프로모션 코드를 사용하여 10% 할인을 받을 수 있습니다. 코드: " + promotionCode;
            message.setText(emailText);

            // 이메일 보내기
            Transport.send(message);
            System.out.println("이메일이 성공적으로 전송되었습니다.");
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

위 예제에서 from 값은 이메일을 보내는 계정의 이메일 주소로, password 값은 해당 계정의 비밀번호로 대체해야 합니다. 또한 to 값은 이메일을 받을 수신자의 이메일 주소로 변경해야 합니다.

참고 자료