使用javax.mail
连接到SMTP服务器时,如何确保TLS版本为v1.2或更高版本。
我使用的是Java版本8(更新162)。
答案 0 :(得分:0)
确保使用TLS版本:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let destination = segue.destination as? HeroViewController{
if tableView == resultsController.tableView {
destination.word = filteredArray[(mainTableView.indexPathForSelectedRow?.row)!]
} else {
destination.word = words[(mainTableView.indexPathForSelectedRow?.row)!]
}
}
}
我没有办法100%确认我正在与v1.2连接,但这是我发现的。 How to force JavaMailSenderImpl to use TLS1.2?
答案 1 :(得分:0)
您可以使用以下代码段获取以空格分隔的受支持协议列表:
String.join(" ", SSLContext.getDefault().getSupportedSSLParameters().getProtocols());
在Java 8中,它将返回Java中最高版本为TLSv1.2
的列表和Java 11中最高版本为TLSv1.3
的列表。
然后只需将系统属性mail.smtp.ssl.protocols
设置为该值,例如
String protocols = String.join(" ",
SSLContext
.getDefault()
.getSupportedSSLParameters()
.getProtocols()
);
System.setProperty("mail.smtp.ssl.protocols", protocols);