我需要通過smtp使用java客戶端的ssl發送電子郵件。我不知道該怎麼做。如何使用Java客戶端通過SMTP發送電子郵件?
- 如果我的Windows機器上安裝了我的服務器證書,我該如何使用它?
- 如果我希望它在非Windows機器上工作,是否需要以不同方式獲取證書?
順便說一句:如果我使用的SMTP服務器使用SSL,我可以確定它會使用SSL將郵件發送給收件人嗎?
我需要通過smtp使用java客戶端的ssl發送電子郵件。我不知道該怎麼做。如何使用Java客戶端通過SMTP發送電子郵件?
順便說一句:如果我使用的SMTP服務器使用SSL,我可以確定它會使用SSL將郵件發送給收件人嗎?
查看this tutorial,其中詳細介紹了使用帶有JSSE(安全套接字擴展)的JavaMail和證書安裝。
如果您不想使用JavaMail,則可以通過TCP套接字自己實現SMTP協議。 See here。但是,你會重新執行許多乍一看似乎微不足道的工作,但會有許多邊緣案例和複雜性。我強烈建議使用這些API作爲工作。
我不喜歡使用JavaMail,只是Java 1.6 API – Ido 2009-08-17 11:37:15
您可能要做的一件事就是tell your Java client to trust服務器的證書。
你的SSL連接到SMTP服務器是puerly點至點。絕對不能保證它將通過SSL連接到其他客戶端和服務器(除非您控制服務器)。
我知道,客戶端不需要自己的證書,它需要服務器證書。我不知道如何獲得Java代碼的服務器證書,並配置SMTP/SSL使用服務器證書來打開SSL連接。 – Ido 2009-08-17 12:35:20
也可以使用MailReporter。 它支持SSL和TLS! http://magithou.com/tips-a-tricks/42-setup-e-mail-accounts/81-ssl-support.htm
希望這可以幫助您設置服務器證書,讓您的java客戶端代碼信任它。
STORE=/path/to/JRE/cacerts
keytool -import -trustcacerts -keystore $STORE -storepass changeit -noprompt -file mymailserver.pem -alias mymailserver
請使用反斜槓,而不是上面的正斜槓(windows傢伙們已經混淆了路徑標識符LOL)。
我不喜歡使用JavaMail,只是Java 1.6 API – Ido 2009-08-17 11:39:05