springboot发送邮件遇到的问题

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

##163邮箱设置###
spring.mail.host=smtp.163.com
[email protected]
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
[email protected]
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!!!

你可能感兴趣的:(springboot发送邮件遇到的问题)