日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

JavaMail可能是邪恶的(并迫使您重新启动应用程序服务器)

發(fā)布時間:2023/12/3 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaMail可能是邪恶的(并迫使您重新启动应用程序服务器) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在配置JavaMail時,總是有一種有趣的方法。 基本上,您必須填寫無類型的地圖或屬性結構,并希望獲得正確的解釋。 網絡上無數(shù)的教程顯示了使其正常工作(發(fā)送/接收郵件)所需的最小屬性。

但是,正如我們痛苦地了解到的那樣,您可能需要注意一些鮮為人知的屬性,即套接字IO的超時設置。 默認情況下,JavaMail對所有套接字操作(連接,IO等)都使用無限超時!

現(xiàn)在,假設您有一簇SMTP服務器,它們可以處理通過DNS循環(huán)訪問的傳出郵件。 如果其中一臺服務器發(fā)生故障(恰好是JavaMail想要連接的服務器),則您的郵件發(fā)送線程將永遠掛起! 這正是發(fā)生在我們身上的事情,我們需要表演一些真正令人討厭的魔術來避免悲劇。

因此,我們現(xiàn)在為所有操作設置超時:

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的循環(huán)服務(例如Amazon S3)或在我們的示例中的郵件集群,請不要忘記配置Java的DNS緩存tiemout(默認情況下也是無限的):

// Only cache DNS lookups for 10 seconds java.security.Security.setProperty("networkaddress.cache.ttl","10");

而且,在我們看來,將所有編碼設置為UTF-8(獨立于底層操作系統(tǒng))對我們來說是一個好主意,以提供穩(wěn)定的環(huán)境:

System.setProperty("file.encoding", Charsets.UTF_8.name()); System.setProperty("mail.mime.charset", Charsets.UTF_8.name());

…您根本不想關心這樣的事情嗎? 隨意使用我們的開源Java庫SIRIUS ,它通過提供簡潔的fluet API發(fā)送郵件來處理所有這些工作: GitHub上的Sources 。

可以在集群管理器中找到一個用法示例:

@Partprivate MailService ms;private void alertClusterFailure() {...ms.createEmail().useMailTemplate("system-alert", ctx).toEmail(receiver).send();...}

翻譯自: https://www.javacodegeeks.com/2014/06/javamail-can-be-evil-and-force-you-to-restart-your-app-server.html

總結

以上是生活随笔為你收集整理的JavaMail可能是邪恶的(并迫使您重新启动应用程序服务器)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。