[java] Javamail을 사용하여 이메일 쓰기 지연 설정하기

Javamail은 자바로 이메일을 보내는 데 사용되는 인기있는 라이브러리입니다. 이메일을 보낼 때, 때로는 일정 시간 지연 후에 메일을 보내야 할 수도 있습니다. 이를 위해 Javamail에서는 javax.mail.Transport 클래스를 사용하여 이메일을 보낼 때 지연을 설정할 수 있습니다.

다음은 Java 예제 코드를 통해 Javamail을 사용하여 이메일의 전송을 지연하는 방법을 보여줍니다.

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

public class EmailSender {
    public static void main(String[] args) {
        // SMTP 서버 구성
        Properties properties = new Properties();
        properties.put("mail.smtp.host", "smtp.example.com");
        properties.put("mail.smtp.port", "25");

        // 지연 설정
        properties.put("mail.smtp.connectiontimeout", "10000");
        properties.put("mail.smtp.timeout", "10000");

        // SMTP 세션 생성
        Session session = Session.getInstance(properties, null);

        try {
            // 이메일 메시지 생성
            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress("sender@example.com"));
            message.setRecipients(Message.RecipientType.TO,
                    InternetAddress.parse("recipient@example.com"));
            message.setSubject("Delayed Email");
            message.setText("This email will be sent after a delay of 10 seconds.");

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

            System.out.println("Email sent successfully.");
        } catch (MessagingException e) {
            System.out.println("Failed to send email. Error: " + e.getMessage());
        }
    }
}

위의 예제 코드에서 properties.put("mail.smtp.connectiontimeout", "10000");properties.put("mail.smtp.timeout", "10000"); 두 줄은 이메일 전송 시간에 대한 지연을 설정하는 부분입니다. 현재 예제에서는 10초로 설정되어 있습니다.

메일 전송 시간을 조정하려면 위의 두 줄에 설정된 값을 원하는 만큼 변경하면 됩니다. 이렇게 하면 Javamail을 사용하여 이메일의 전송을 원하는 지연 시간으로 설정할 수 있습니다.

참고 자료: