springboot发送邮件问题总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/MonkeyBrothers/article/details/82655570

springboot内部集成了spring的邮件发送功能,所以在使用springboot进行邮件发送的时候需要在maven中加入以下依赖。

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

如果只是引入就能够使用的话,我就不会记录这个博客了,总结一下我遇到的问题和解决办法。

1.我是以163作为我的邮箱主机进行邮件发送的,使用163发送邮件需要开启POP3服务协议(这里会让输入账号和密码,这里输入的账号和密码才是项目里面使用的项目和密码)。

2.在“application.properties”配置文件中加入以下配置(这里需要注意的是我们的属性后面不能有空格,习惯敲空格的小伙伴需要注意一下)。

spring.mail.host=smtp.163.com
spring.mail.username=自己的邮箱
spring.mail.password=设置的密码
spring.mail.properties.smtp.auth=true
spring.mail.properties.smtp.starttls.enable=true
spring.mail.properties.smtp.starttls.required=true
spring.mail.properties.mail.smtp.socketFactory.port=465

3.在使用的时候需要注意的是我们要从“application.properties”配置文件中读取属性值,在代码中需要注意的是正确的取值方式,比如:

正确:
@Value("${spring.mail.username}")
private String from;

错误:
@Value("{spring.mail.username}")
private String from;

没发现上面代码有区别的小伙伴仔细看看哟,不要和我犯一样的错误。

4.当这些坑我一一跳出之后,却发现了没有办法给别人发送邮件,给的提示是:邮件为垃圾邮件。这个时候就需要仔细检查写的邮件内容了,我避免了比较敏感的词汇,但还是被识别为垃圾邮件,于是试着本账号给本账号发邮件,果然成功。然后试着发送给别人抄送给自己,还是出bug,接着试着给自己发,抄送给别人,没有问题。我仔细看了邮件之后发现我的标题为空,没有设置,添加上标题之后,成功发送。

总结上面的测试:

给别人发--------------------没有标题 ----------------失败(垃圾邮件)

给自己发抄送别人--------没有标题-----------------成功

给别人发抄送给自己-----没有标题-----------------失败(垃圾邮件)

给别人发-------------------- 有标题--------------------成功

PS:至于怎么发送邮件,以及怎么使用,大家可以自行学习。

猜你喜欢

转载自blog.csdn.net/MonkeyBrothers/article/details/82655570