到目前为止,我正在搜索近一个小时,以找到有效值的规范或列表来填充此属性。
我正在使用javax.mail.Session并调用Session.getInstance(props)来设置" mail.smtp.ssl.protocols"。
我在代码中有一个例子,我正在研究:" TLSv1"。我想知道,如果有更多可用的TLS版本,或者我可以将版本保留,只需将其设置为" TLS"代替。
我在网上关注的提示和链接,不够具体或者是死链接。
到目前为止我搜索过的地方:
许多指向Oracle文档的链接仅显示Oracle登录页面。 SMTP的维基百科描述提到RFC 821,但它不包含属性列表或指向它们的链接。
感谢您的帮助。
答案 0 :(得分:1)
SSLSocket提供了一种方法getSupportedProtocols()
:
SSLSocketFactory sf = new SSLSocketFactoryImpl();
SSLSocket s = (SSLSocket) sf.createSocket();
System.out.println( Arrays.toString( s.getSupportedProtocols() )) ;
输出: [SSLv2Hello,SSLv3,TLSv1,TLSv1.1,TLSv1.2]
<强>详细信息:强>
https://javamail.java.net/nonav/docs/api/com/sun/mail/smtp/package-summary.html
mail.smtp.ssl.protocols - 指定将为SSL连接启用的SSL协议。属性值是javax.net.ssl.SSLSocket.setEnabledProtocols方法可接受的以空格分隔的标记列表。
这些协议必须已被getSupportedProtocols()列为受支持。