使用javax.mail
连接到SMTP服务器时,如何确保TLS的版本为1.2或更高版本。
我使用的是Java版本8(更新162)。
发布于 2018-06-06 04:28:33
要确保使用的是TLS版本:
props.put("mail.smtp.ssl.protocols", "TLSv1.2");
我没有办法100%确认我正在连接v1.2,但这就是我所发现的。How to force JavaMailSenderImpl to use TLS1.2?
发布于 2019-08-24 09:21:12
您可以使用以下代码片段获取以空格分隔的受支持协议的列表:
String.join(" ", SSLContext.getDefault().getSupportedSSLParameters().getProtocols());
在Java8中,这将返回一个以TLSv1.2
为最高版本的列表,在Java11中将返回一个以TLSv1.3
为最高版本的列表。
然后只需将系统属性mail.smtp.ssl.protocols
设置为该值,例如
String protocols = String.join(" ",
SSLContext
.getDefault()
.getSupportedSSLParameters()
.getProtocols()
);
System.setProperty("mail.smtp.ssl.protocols", protocols);
https://stackoverflow.com/questions/50707257
复制相似问题