사용자 도구

사이트 도구


java:mail

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
java:mail [2014/03/20 18:14]
kwon37xi [Dependencies]
java:mail [2014/06/15 22:01] (현재)
kwon37xi
줄 12: 줄 12:
 ===== 설정 ===== ===== 설정 =====
   * [[https://​javamail.java.net/​nonav/​docs/​api/​com/​sun/​mail/​smtp/​package-summary.html|Javamail SMTP 설정]]   * [[https://​javamail.java.net/​nonav/​docs/​api/​com/​sun/​mail/​smtp/​package-summary.html|Javamail SMTP 설정]]
 +
 +==== Java Mail의 connection timeout 문제점 ====
 +  * [[http://​www.javacodegeeks.com/​2014/​06/​javamail-can-be-evil-and-force-you-to-restart-your-app-server.html|JavaMail can be evil (and force you to restart your app server)]]
 +  * Java mail은 기본적으로 connection timeout 이 무한대이다. 따라서 커넥션이 하나라도 안 맺어지면 해당 쓰레드는 무한히 멈추게 된다. 모든 timeout 종류가 다 그렇기 때문에 **항상 timeout을 명시**해줘야 한다.<​code java>
 +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);​
 +</​code>​
 +  * DNS Roud robin을 사용할 경우(Amazon S3 등) DNS 캐시를 꺼야 한다.<​code java>
 +// Only cache DNS lookups for 10 seconds
 +java.security.Security.setProperty("​networkaddress.cache.ttl","​10"​);​
 +</​code>​
  
java/mail.txt · 마지막으로 수정됨: 2014/06/15 22:01 저자 kwon37xi