[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을 사용하여 이메일의 전송을 원하는 지연 시간으로 설정할 수 있습니다.
참고 자료:
- Javamail API Documentation
- Stack Overflow - How to set timeout value for sending an email using Javamail?