사용자 도구

사이트 도구


java:mail

Java Mail

Dependencies

설정

Java Mail의 connection timeout 문제점

  • Java mail은 기본적으로 connection timeout 이 무한대이다. 따라서 커넥션이 하나라도 안 맺어지면 해당 쓰레드는 무한히 멈추게 된다. 모든 timeout 종류가 다 그렇기 때문에 항상 timeout을 명시해줘야 한다.
    String MAIL_SMTP_CONNECTIONTIMEOUT ="mail.smtp.connectiontimeout";
    String MAIL_SMTP_TIMEOUT = "mail.smtp.timeout";
    String MAIL_SMTP_WRITETIMEOUT = "mail.smtp.writetimeout";
    String MAIL_SOCKET_TIMEOUT = "60000";
     
    // Set a fixed timeout of 60s for all operations -
    // the default timeout is "infinite"
    props.put(MAIL_SMTP_CONNECTIONTIMEOUT, MAIL_SOCKET_TIMEOUT);
    props.put(MAIL_SMTP_TIMEOUT, MAIL_SOCKET_TIMEOUT);
    props.put(MAIL_SMTP_WRITETIMEOUT, MAIL_SOCKET_TIMEOUT);
  • DNS Roud robin을 사용할 경우(Amazon S3 등) DNS 캐시를 꺼야 한다.
    // Only cache DNS lookups for 10 seconds
    java.security.Security.setProperty("networkaddress.cache.ttl","10");
java/mail.txt · 마지막으로 수정됨: 2014/06/15 22:01 저자 kwon37xi