在springboot中使用腾讯QQ邮箱发送邮件时出现的错误
温馨提示:
本文最后更新于 2022年04月04日,已超过 977 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
一、问题描述
1.1 问题一
STARTTLS is required but host does not support STARTTLS
1.2 解决办法
将starttls
关闭,修改以下两个参数mail.smtp.starttls.enable: false
mail.smtp.starttls.required: false
详细配置
properties:
mail.smtp.auth: true
mail.smtp.ssl.enable: true
mail.smtp.socketFactory.class: javax.net.ssl.SSLSocketFactory
mail.smtp.socketFactory.port: 465
mail.smtp.starttls.enable: false
mail.smtp.starttls.required: false
mail.smtp.connectiontimeout: 50000
mail.smtp.timeout: 30000
mail.smtp.writetimeout: 50000
1.3 问题二
在我解决完第一个问题后,在本地跑没有问题,然后打包到服务器上就出现了下面这个问题。具体原因我也不太清楚,查了许多文章,发现大概是jdk的原因。
Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
1.4 解决办法
1.4.1 分析原因
比较了一下两个环境,排查一下无关的因素,基本定位了,是jdk版本的问题。
我本地jdk版本是:1.8.0_65。服务器端为:1.8.0_322。
降低jdk版本虽然可以,但是不是一个好的办法,于是就找到另个解决办法。
1.4.2 修改配置
①修改:D:\Java\jdk1.8.0_322\jre\lib\security\java.security
或/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/jre/lib/security/java.security
文件。
②删除:SSLv3, TLSv1, TLSv1.1
这几个参数,具体为什么我也不知道,如有知道的欢迎评论。所以呢,修改之前请备份该文件。
正文到此结束
- 本文标签: Linux
- 本文链接: https://www.it1997.com/article/72
- 版权声明: 本文由小陈没烦恼原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权