springboot发送邮件遇到的问题

在实际项目中遇到的需求:使用企业内部邮箱,比如我自己的邮箱cczhao@xxx,发送邮件给企业内其它同事。我先是使用QQ邮箱、163邮箱发送邮件给企业内其他同事,结果都没有问题,下面给出配置详情:

##163邮箱设置###
spring.mail.host=smtp.163.com
spring.mail.username=xxx@163.com
spring.mail.port=465
spring.mail.properties.mail.smtp.socketFactory.port = 465
spring.mail.properties.mail.smtp.socketFactory.class = javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.smtp.socketFactory.fallback = false
spring.mail.password=xxx(自己的邮箱密码)
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

##QQ邮箱设置###
spring.mail.host=smtp.qq.com
spring.mail.username=xxx@qq.com
spring.mail.port=465
spring.mail.properties.mail.smtp.socketFactory.port = 465
spring.mail.properties.mail.smtp.socketFactory.class = javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.smtp.socketFactory.fallback = false
spring.mail.password=orwzrgddefbdbaea(这里是授权码,不是QQ邮箱密码)
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

然后,我使用企业内的邮箱作为邮件发送服务器,配置同上,如下所示

###企业邮箱设置###
spring.mail.host=xxx
spring.mail.username=cczhao@xxx
spring.mail.port=465
spring.mail.properties.mail.smtp.socketFactory.port = 465
spring.mail.properties.mail.smtp.socketFactory.class = javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.smtp.socketFactory.fallback = false
spring.mail.password=xxx
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

在代码实际执行过程中遇到了下面的问题:(PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target.)


error

经查询,原因应该是没有通过邮件服务器认证造成的,还需要在配置文件中加上spring.mail.properties.mail.smtp.ssl.trust的配置,附上完整的配置信息:

###企业邮箱设置###
spring.mail.host=xxx
spring.mail.username=cczhao@xxx
spring.mail.port=465
spring.mail.properties.mail.smtp.socketFactory.port = 465
spring.mail.properties.mail.smtp.socketFactory.class = javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.smtp.socketFactory.fallback = false
spring.mail.password=xxxxx
spring.mail.properties.mail.smtp.ssl.trust=xxx
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

OVER!!!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容