[java] Javamail을 사용하여 이메일에 자동 응답 설정하기

이메일 시스템에서 자동 응답 기능은 매우 유용한 기능입니다. 자동 응답을 통해 사용자가 이메일을 보낼 경우, 시스템에서 자동으로 응답 메시지를 보낼 수 있습니다. 이렇게 하면 사용자가 질문을 했을 때 즉각적인 피드백을 제공하고, 효율적인 응대를 할 수 있습니다.

Javamail은 자바에서 이메일을 보내고 받을 수 있는 라이브러리입니다. 이 라이브러리를 활용하여 자동 응답 메시지를 설정하는 방법에 대해 알아보겠습니다.

1. Javamail 라이브러리 추가

먼저, Javamail 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용한다면 pom.xml 파일에 다음 종속성을 추가하세요:

<dependency>
  <groupId>com.sun.mail</groupId>
  <artifactId>javax.mail</artifactId>
  <version>1.6.2</version>
</dependency>

Gradle을 사용한다면 build.gradle 파일에 다음 종속성을 추가하세요:

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

2. 자동 응답 코드 작성

이메일의 자동 응답을 작성하기 위해 다음과 같은 코드를 사용할 수 있습니다:

import javax.mail.*;
import javax.mail.internet.*;

public class AutoResponder {

   public static void main(String[] args) throws Exception {

      // 응답할 이메일 정보
      String fromEmail = "your-email@example.com";
      String password = "your-password";
      String replySubject = "자동 응답";
      String replyMessage = "안녕하세요. 자동 응답입니다.";

      // 응답할 이메일 설정
      Properties properties = new Properties();
      properties.put("mail.smtp.auth", "true");
      properties.put("mail.smtp.starttls.enable", "true");
      properties.put("mail.smtp.host", "smtp.example.com");
      properties.put("mail.smtp.port", "587");

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

      // 자동 응답 메시지 작성
      MimeMessage reply = new MimeMessage(session);
      reply.setFrom(new InternetAddress(fromEmail));
      reply.setSubject(replySubject);
      reply.setText(replyMessage);

      // 받은 메시지에 대한 응답 설정
      Message message = new MimeMessage(session);
      message.setReplyTo(new Address[]{new InternetAddress(fromEmail)});
      message.setRecipient(Message.RecipientType.TO, new InternetAddress("recipient-email@example.com"));
      message.setSubject("답장을 받을 이메일 주소"); // 수신자의 이메일 주소를 입력하세요
      message.setText("질문을 입력하세요."); // 수신자에게 보낼 질문 메시지를 입력하세요
      message.saveChanges();

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

위의 코드에서 fromEmailpassword 변수에 보내는 사람의 이메일 주소와 비밀번호를 입력하세요. replySubjectreplyMessage 변수에는 자동 응답 메시지의 제목과 내용을 입력하세요. 또한, 수신자의 이메일 주소를 입력해야 합니다.

3. 응답 설정 시점 결정

실제로 이메일에 자동 응답을 설정하기 위해서는 언제 응답을 보낼지 결정해야 합니다. 예를 들어, 새로운 이메일이 도착할 때마다 자동 응답을 보낼 수 있습니다. 이 경우, JavaMail을 사용하여 이메일을 주기적으로 확인하고 새로운 메시지가 도착하면 자동 응답을 보낼 수 있습니다.

위의 코드는 단순히 자동 응답 메시지를 한 번만 보내는 예시입니다. 새로운 메시지가 도착할 때마다 자동 응답을 보내기 위해서는 메일함을 주기적으로 확인해야 하며, 그에 따른 추가 로직이 필요합니다.

결론

Javamail을 사용하여 이메일에 자동 응답을 설정하는 방법에 대해 알아보았습니다. 자동 응답은 사용자에게 신속한 피드백을 제공하고, 이메일 응대 과정을 효율적으로 관리하기 위해 매우 유용한 기능입니다.

더 자세한 내용은 JavaMail 공식 문서를 참조하세요.