Javamail和TLS?(不是STARTTLS)

ste*_*wpf 3 java ssl jakarta-mail

我需要使用Javamail和TLS发送电子邮件(不是STARTTLS,而是专用于SSL/TLS的专用smtp端口!).我只设法找到gmail的例子,但是使用STARTTLS.有人可以发一个正常SSL/TLS的例子吗?非常感谢你!

Bru*_*uno 5

JavaMail with Gmail官方示例使用SMTPS(即专用端口上的SMTP over SSL/TLS)而不是STARTTLS.基本上,使用JavaMail的属性应该是mail.smtps.*代替mail.smtp.*.

如果您想强制使用特定版本的SSL/TLS,例如TLSv1.0,您需要创建自己的版本SSLSocketFactory,可能包含默认值SSLSocketFactory(或者您自定义的任何其他内容),但是sslSocket.setEnabledProtocols(new String[] { "TLSv1" })在返回之前需要调用插座.

您需要SSLSocketFactory通过mail.smtps.ssl.socketFactory配置属性将其作为实例传递,或者作为完全限定的类名传递mail.smtps.ssl.socketFactory.class(在这种情况下,您的类必须实现一个名为的静态方法getDefault).

要防止MITM攻击,您还需要让客户端验证服务器主机名:您需要设置mail.smtps.ssl.checkserveridentitytrue,因为它似乎false默认情况下.