发送电子邮件
Spring
框架提供了一种使用 JavaMailSender
接口的简单抽象方法发送电子邮件,而 SpringBoot
为其提供了自动配置。
首先我们需要导入 spring-boot-starter-mail
包。
<!--mail-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
特别注意,因为某些默认超时值是无限的,所以需要重新配置,以避免线程被一个无相应的邮箱服务器阻塞,如下面的例子所示:
spring.mail.properties.mail.smtp.connectiontimeout=5000
spring.mail.properties.mail.smtp.timeout=3000
spring.mail.properties.mail.smtp.writetimeout=5000
我们要知道,如果要从QQ邮箱发送一封邮件给163邮箱,并不是两个用户之间直接发送的,而是如下所示,用户A把邮件发送给QQ邮箱服务器,然后QQ邮箱服务器发送给163邮箱服务器,最后用户B上线之后再获取这封邮件。
所以,我们还需要配置QQ邮箱的主机,你的邮箱账户的账号、密码(application.yml):
spring:
#mail的配置
mail: