java - 打开JDK最新Javax邮件未发送

标签 java security ssl mail-server

升级到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.disabledAlgorithmsjava安全文件的位置是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/

相关文章:

c# - SmartCard 安全性,您如何验证证书不是伪造的?

java - 存在多个匹配证书时如何选择SSL客户端证书?

java - 对于外部 jar,如果 jar 已存在/复制到 lib 文件夹,是否需要在 pom.xml 文件中添加具有系统路径的依赖项

java - Infinispan 8 集群缓存

java - 破折号和参数是否有任何标准的命令行约定?

linux - lfd (csf) - 防止来自某些用户的 SSH 登录警报

django - 在不控制根目录的情况下使用 lets encrypt

Java 休息客户端 : jax-rs & automatic type mapping

Django 和 Facebook : security & design for a facebook webapp that performs a third party login on behalf of the user

security - 设置缓冲区溢出学习环境