查阅了很多资料与百度谷歌了很久,网上很多配置
props.setProperty("mail.transport.protocol", "SMTP"); 说SMTP得大写 测试无效
props.setProperty("mail.smtp.socketFactory.fallback", "false"); 也是无效
props.put("mail.smtp.ssl.enable", true); 也是无效
因为本地上运行是可以发送邮件的,线上环境却不行
本地环境为1.8 线上环境为11 所以在想是是不是环境导致的
有了想法就行动起来
查阅了很多资料说是java.security中配置文件不要SSL3,TLSv1, TLSv1.1配置
由于部署环境是在docker中,所以直接在代码中加入一行代码即可解决
props.put("mail.smtp.ssl.protocols", "TLSv1.2");
再测试发送,发送成功!完美
最后上一下代码

博主遇到一个问题,在本地使用Java发送邮件能够成功,但在线上环境却无法发送。经过排查,发现可能是由于Java环境不同(本地1.8,线上11)导致的SSL配置问题。解决方案是去除不安全的SSL协议配置,并在代码中指定`mail.smtp.ssl.protocols`为`TLSv1.2`。更新代码后,邮件发送成功。这是一篇关于Java邮件发送和环境适配的技术分享。
1万+

被折叠的 条评论
为什么被折叠?



