[java] Javamail을 사용하여 이메일에 장바구니 상품 알림 추가하기

이메일 알림은 온라인 쇼핑몰의 중요한 기능 중 하나입니다. 장바구니에 담은 상품에 대한 알림을 사용자에게 보내는 것은 사용자 경험을 향상시키고 구매 확률을 높일 수 있는 좋은 방법입니다. 이 글에서는 Javamail을 사용하여 이메일에 장바구니 상품 알림을 추가하는 방법에 대해 알아보겠습니다.

1. Javamail 라이브러리 추가하기

먼저, Javamail을 사용하기 위해서는 라이브러리를 프로젝트에 추가해야 합니다. 이를 위해 아래의 Dependency를 build.gradle 파일에 추가해주세요.

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

2. 이메일 서버 설정하기

이메일을 보내기 위해서는 이메일 서버의 정보가 필요합니다. 주로 SMTP 프로토콜을 사용하며, 이메일 서버의 호스트, 포트, 계정 등을 설정해야 합니다. 아래의 예제는 구글 Gmail SMTP 서버를 사용하는 방법입니다.

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

Session session = Session.getInstance(properties,
    new javax.mail.Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication("your-email@gmail.com", "your-password");
        }
    });

3. 이메일 전송하기

이제 이메일을 보내는 코드를 작성해보겠습니다. 장바구니에 담긴 상품 정보를 이메일로 전송하는 간단한 예제입니다.

public class EmailUtil {

    public static void sendEmail(String toAddress, String subject, String body) throws MessagingException {

        String fromAddress = "your-email@gmail.com";

        Message message = new MimeMessage(Session.getDefaultInstance(properties));
        message.setFrom(new InternetAddress(fromAddress));
        message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toAddress));
        message.setSubject(subject);
        message.setText(body);

        Transport.send(message);

        System.out.println("Email Sent Successfully!");
    }
}

4. 장바구니 상품 알림 추가하기

이제 장바구니에 담긴 상품 정보를 이메일로 보내는 기능을 구현해보겠습니다. 예를 들어 사용자가 장바구니에 상품을 추가할 때마다 이메일로 알림을 보내는 것입니다.

public class CartUtil {

    public static void addToCart(Product product, String email) {
        // 장바구니에 상품을 추가하는 로직

        String subject = "장바구니에 상품이 추가되었습니다.";
        String body = "장바구니에 다음 상품이 추가되었습니다.\n" + product.getName() + " - " + product.getPrice();

        try {
            EmailUtil.sendEmail(email, subject, body);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

위의 코드는 장바구니에 상품을 추가할 때마다 EmailUtil 클래스의 sendEmail 메서드를 사용하여 이메일을 보내는 예제입니다.

이제 Javamail을 사용하여 이메일에 장바구니 상품 알림을 추가하는 방법에 대해 알아보았습니다. 이를 통해 사용자에게 상품 알림을 보내어 구매 확률을 높일 수 있습니다. 추가적인 기능을 구현해야 할 경우 Javamail의 다양한 기능을 활용해보세요.

참고 자료