如何验证javax.mail中使用的TLS版本。*;

时间:2018-06-05 19:05:06

标签: java smtp tls1.2

使用javax.mail连接到SMTP服务器时,如何确保TLS版本为v1.2或更高版本。

我使用的是Java版本8(更新162)。

2 个答案:

答案 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);