[java] Javamail을 사용하여 이메일에 특정 기간 동안의 할인 정보 추가하기

이메일을 통해 할인 정보를 전달하는 것은 많은 온라인 쇼핑 사이트에서 일반적인 방법입니다. Javamail을 사용하면 손쉽게 이메일을 작성하고 전송할 수 있습니다. 이번 가이드에서는 Javamail을 사용하여 특정 기간 동안의 할인 정보를 이메일로 추가하는 방법을 알아보겠습니다.

Javamail 라이브러리 추가하기

먼저 Javamail을 사용하기 위해 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 의존성을 추가합니다:

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

Gradle을 사용하는 경우, build.gradle 파일에 다음 의존성을 추가합니다:

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

이메일 작성 및 전송하기

이제 Javamail을 사용하여 할인 정보를 포함한 이메일을 작성하고 전송하는 코드를 작성해보겠습니다. 다음은 예시 코드입니다:

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

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

        Properties props = new Properties();
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.host", "smtp.gmail.com");
        props.put("mail.smtp.port", "587");

        Session session = Session.getInstance(props,
                new javax.mail.Authenticator() {
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication(username, password);
                    }
                });

        try {
            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress("your-email@gmail.com"));
            message.setRecipients(Message.RecipientType.TO,
                    InternetAddress.parse("recipient-email@example.com"));
            message.setSubject("할인 정보");
            message.setText("안녕하세요,\n특정 기간 동안 할인되는 상품 정보입니다.");

            Transport.send(message);

            System.out.println("이메일 전송 완료!");

        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }
    }
}

위의 코드에서는 Gmail SMTP 서버를 사용하고 있으며, 발신자의 이메일 주소와 비밀번호를 제공해야 합니다. 또한 수신자의 이메일 주소를 InternetAddress.parse 메소드의 인자로 전달하여 이메일을 보낼 대상을 지정할 수 있습니다.

할인 정보 추가하기

할인 정보를 이메일에 추가하려면 message.setText 메소드의 인자로 할인 정보를 포함한 문자열을 전달하면 됩니다. 예를 들어, message.setText("안녕하세요,\n특정 기간 동안 할인되는 상품 정보입니다.");와 같이 이메일 내용에 할인 정보를 포함하는 문자열을 작성할 수 있습니다.

결론

이제 Javamail을 사용하여 이메일에 특정 기간 동안의 할인 정보를 추가하는 방법을 알아보았습니다. Javamail을 활용하면 간단하고 효율적으로 이메일을 작성하고 전송할 수 있으므로, 온라인 쇼핑 사이트나 기타 서비스에서 할인 정보를 전달하는 데 활용해보시기 바랍니다.


참고 자료