升级到JDK 11.0.16
并且电子邮件服务器无法发送电子邮件。
在此之前 JDK 11.0.6
,电子邮件工作正常。
我检查了我的配置 100 次,但是从 11.0.11 开始了解 JDK 禁用了 TLSv1
, TLSv1.1
支持
https://github.com/openjdk/jdk/blob/67141849d922a3899fcb4429a520b874b7d91b4c/src/java.base/share/conf/security/java.security#L736
解决此问题的可能解决方案是什么,以便我的应用程序继续发送电子邮件!
最佳答案
可能的解决方案可能是
解决方案1。
编辑java.security
文件并删除 TLSv1
, TLSv1.1
来自 jdk.tls.disabledAlgorithms
java安全文件的位置是usr/local/openjdk-11/conf/security/java.security
解决方案 2。
第二种解决方案可能会强制您的邮件实现像这样使用 TLSv1.2
// add this line mail.smtp.ssl.protocols=TLSv1.2; in properties
// in your Mail Implementation class
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.ssl.protocols","TLSv1.2");
或者你的 Java Mail impl 看起来像这样Properties prop = new Properties();
prop.setProperty("mail.smtp.auth", "true");
prop.setProperty("mail.smtp.starttls.enable", "true");
prop.setProperty("mail.smtp.ssl.protocols", "TLSv1.2"); // New Line
prop.setProperty("mail.smtp.ssl.trust", mailUri.getHost());
mailSender.setJavaMailProperties(prop);
这些解决方案应该会有所帮助:)
关于java - 打开JDK最新Javax邮件未发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70672481/