2011-07-31 54 views
0

我們如何使用java郵件API,以便僅在需要時才進行SMTP認證。 例如,如果mail.smtp.auth屬性設置爲true,即使SMTP服務器不需要驗證,驗證也會完成。僅當需要時才使用Java SMTP認證

我是否需要首先發送沒有密碼的郵件,捕獲異常並根據異常發送帶有密碼的郵件?

+1

你爲什麼要這樣做?當然,如果你有辦法進行身份驗證,你應該這樣做。同上使用安全通道與服務器通話。另外,我從來沒有聽說過有人用* optional *認證配置SMTP服務器。爲什麼要這麼做? –

+0

內部域名電子郵件未在我正在使用的系統中進行身份驗證。因此要求。可能會很奇怪但是無論如何這樣做。 – Ramana

+0

這個「不是」是指「不能被認證」或「不需要認證」嗎?在後一種情況下,最好的做法是無論如何認證它們。 –

回答

0

如果mail.smtp.auth屬性設置爲true,那麼當SMTP服務器不需要時,即使執行了認證,也會執行 。

很難相信不需要驗證的SMTP服務器的存在或效用。

+0

感謝您的回覆。但有什麼辦法可以做到這一點? – Ramana

+0

@Ramana直到你提供一個存在證明,這不是一個有趣的問題,是嗎? – EJP

0

在此基礎上:

我沒有控制暗示,這是誰高達使用該軟件的用戶。

簡單的解決方案是允許用戶打開/關閉使用配置的認證細節。其中有很多,包括一些啓用/禁用身份驗證。

除此之外,你是運氣不好。您需要通過創建子類或從頭開始實現自己的SMTP提供程序行爲。或者,捕獲異常並重試。

您的特定操作模式根本不受支持。


對於什麼是值得的,我認爲,JavaMail的執行者在不支持這種使用情況,無論他們是否是故意做了正確的事情。這將鼓勵郵件服務器的實施者對安全問題漠不關心,最終用戶使用電子郵件欺騙來玩愚蠢的遊戲。

+0

感謝您的解釋。它有幫助。 – Ramana