Spring Boot使用无认证微软SMTP发邮件报认证失败异常
问题根因
Spring Boot的JavaMail自动配置默认把SMTP认证开关设为开启,哪怕你用的SMTP服务器本身不需要账号密码,客户端还是会主动走认证流程,才会报这个没密码的认证失败错。
解决方法
不用改业务代码,只要在application.properties里补两行配置,关掉默认的认证和不必要的TLS协商就行,改完的完整配置:
spring.mail.host=1.1.1.1 spring.mail.port=25 # 关闭SMTP认证,适配免密访问的SMTP中继 spring.mail.properties.mail.smtp.auth=false # 关闭25端口默认的STARTTLS握手,避免额外协商失败 spring.mail.properties.mail.smtp.starttls.enable=false
改完重启应用就可以正常发邮件。
排错补充
如果改完配置还是连不上,先测下应用所在服务器到SMTP服务器25端口的网络通不通,确认防火墙、安全组没有拦截25端口的出流量就行。
内容的提问来源于stack exchange,提问作者eboi
相关产品推荐
相关产品推荐

