我需要使用java客户端使用ssl通过smtp发送电子邮件。我不知道该怎么做。
顺便说一句:如果我使用的SMTP服务器使用SSL,我可以确定它会使用SSL将邮件发送给收件人吗?
答案 0 :(得分:1)
查看this tutorial,其中详细介绍了如何使用JavaMail和JSSE(安全套接字扩展)和证书安装。
如果您不想使用JavaMail,则可以通过TCP套接字自行实施SMTP协议。 See here。但是你将重新实现许多乍一看似乎微不足道的工作,但会有许多边缘情况和复杂性。我强烈建议使用API来完成这项工作。
答案 1 :(得分:0)
您可能要做的一件事就是tell your Java client to trust服务器的证书。
您与SMTP服务器的SSL连接是点对点的。绝对不能保证它将通过SSL连接到其他客户端和服务器(除非您控制服务器)。
答案 2 :(得分:0)
您也可以使用MailReporter。 它支持SSL和TLS! http://magithou.com/tips-a-tricks/42-setup-e-mail-accounts/81-ssl-support.htm
答案 3 :(得分:0)
希望这可以帮助您设置服务器证书,使其受到您的Java客户端代码的信任。
STORE=/path/to/JRE/cacerts
keytool -import -trustcacerts -keystore $STORE -storepass changeit -noprompt -file mymailserver.pem -alias mymailserver
请使用反斜杠而不是上面的转义斜杠(Windows家伙在路径标识符LOL中混淆了自己。)