[java] Javamail을 사용하여 이메일에 판매 완료 알림 추가하기

이메일을 통해 고객에게 판매 완료 알림을 보내는 것은 많은 비즈니스에서 중요한 기능입니다. 이 기능을 구현하기 위해 Javamail API를 사용할 수 있습니다. Javamail은 Java로 작성된 이메일 클라이언트 라이브러리로써, SMTP 프로토콜을 사용하여 이메일을 보낼 수 있습니다.

Javamail 설정하기

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

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

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

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

이메일 보내기

이제 이메일을 보내는 코드를 작성해보겠습니다. 먼저, javax.mail 패키지의 클래스들을 import합니다:

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

그리고 다음과 같은 함수를 작성합니다:

public void sendEmail(String recipientEmail, String subject, String content) throws MessagingException {
    String senderEmail = "your-email@example.com";
    String senderPassword = "your-email-password";
    String smtpHost = "smtp.example.com";
    int smtpPort = 587;

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

    // 세션 생성
    Session session = Session.getInstance(properties, new Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(senderEmail, senderPassword);
        }
    });

    // 이메일 구성
    Message message = new MimeMessage(session);
    message.setFrom(new InternetAddress(senderEmail));
    message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipientEmail));
    message.setSubject(subject);
    message.setText(content);

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

위의 코드에서 senderEmail, senderPassword, smtpHost, smtpPort 변수를 본인의 정보로 변경하고, sendEmail 함수를 원하는 곳에서 호출하여 사용합니다.

예제 사용법

다음은 sendEmail 함수를 사용하는 예제입니다:

try {
    String recipientEmail = "customer@example.com";
    String subject = "주문 완료 안내";
    String content = "주문이 성공적으로 처리되었습니다.";

    sendEmail(recipientEmail, subject, content);
    System.out.println("이메일이 성공적으로 보내졌습니다.");
} catch (MessagingException e) {
    System.out.println("이메일을 보내는 도중 오류가 발생했습니다: " + e.getMessage());
}

위의 예제에서는 recipientEmail, subject, content 변수를 적절한 값으로 설정하여 이메일을 보내고 있습니다. sendEmail 함수가 호출된 후에는 성공적으로 이메일이 보내졌다는 메시지가 출력됩니다. 만약 이메일 전송 중에 오류가 발생하면 해당 오류 메시지가 출력됩니다.

이제 Javamail을 사용하여 이메일에 판매 완료 알림을 추가하는 방법을 알게 되었습니다. 이 기능을 사용하여 고객 서비스를 개선하고 비즈니스 성과를 향상시킬 수 있습니다.

참고 자료