Spirngboot使用JavaMail发送邮件,本地测试是可以通过的,但项目部署到阿里云服务器后就不行了,
原因是阿里云处于安全考虑,TCP 25 端口出方向默认被封禁。
解决方法是邮箱的配置改为ssl加密465端口发送。
application.yml的配置如下:
spring:
#邮箱配置
mail:
host: smtp.exmail.qq.com
username: 邮箱名
password: 邮箱登录密码
properties:
mail:
smtp:
auth: true
timeout: 25000
ssl.enable: true
socketFactory.class: javax.net.ssl.SSLSocketFactory
starttls.enable: true
socketFactory.port: 465
port: 465
default-encoding: UTF-8
参考文献:阿里云ECS默认禁用25端口导致发邮件失败:Couldn't connect to host, port: smtp.example.com