[java] Javamail을 사용하여 이메일의 전송 상태 확인하기

이메일은 현대 사회에서 광범위하게 사용되는 통신 수단입니다. 때때로 우리는 이메일을 보내고 상대방이 메일을 성공적으로 받았는지 확인하고 싶을 때가 있습니다. Javamail을 사용하면 이메일의 전송 상태를 확인할 수 있습니다. 이 블로그 포스트에서는 Javamail을 사용하여 이메일의 전송 상태를 확인하는 방법을 다루겠습니다.

Javamail 라이브러리 추가하기

우선 Javamail을 사용하기 위해 라이브러리를 추가해야 합니다. 아래와 같이 Maven을 사용하는 경우, pom.xml에 다음 종속성을 추가하십시오:

<dependencies>
   <dependency>
      <groupId>javax.mail</groupId>
      <artifactId>mail</artifactId>
      <version>1.6.2</version>
   </dependency>
</dependencies>

만약 Maven을 사용하지 않는다면, Javamail 라이브러리를 다운로드하고 프로젝트의 클래스패스에 추가하십시오.

이메일 전송 상태 확인하기

다음은 Javamail을 사용하여 이메일 전송 상태를 확인하는 간단한 예제 코드입니다. 아래와 같이 코드를 작성하고 실행하면, 이메일이 성공적으로 전송되었는지 확인할 수 있습니다.

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

public class EmailStatusChecker {

   public static void main(String[] args) {
      String to = "recipient@example.com";
      String from = "sender@example.com";
      String host = "smtp.example.com";
      String username = "your_username";
      String password = "your_password";

      Properties properties = System.getProperties();
      properties.setProperty("mail.smtp.host", host);
      properties.setProperty("mail.smtp.auth", "true");

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

      try {
         MimeMessage message = new MimeMessage(session);
         message.setFrom(new InternetAddress(from));
         message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
         message.setSubject("Test Email");
         message.setText("This is a test email");

         Transport.send(message);

         System.out.println("Email sent successfully!");
      } catch (MessagingException mex) {
         mex.printStackTrace();
      }
   }
}

위의 예제 코드에서는 to, from, host에 대한 값을 수정하여 실제 이메일 주소와 호스트 정보를 사용하십시오. usernamepassword는 이메일 계정의 인증 정보입니다.

위의 코드를 실행하면, 이메일이 Transport.send() 메서드를 통해 성공적으로 전송되는지 확인할 수 있습니다. 만약 이메일 전송에 실패하면, MessagingException이 발생하고 해당 예외를 처리할 수 있습니다.

이제 Javamail을 사용하여 이메일의 전송 상태를 확인하는 방법을 배웠습니다. 이를 통해 우리는 자신이 보낸 이메일이 성공적으로 전송되었는지 쉽게 확인할 수 있습니다.

참고 자료