Spring提供了非常好用的JavaMailSender接口实现邮件发送。在Spring Boot的Starter模块中也为此提供了自动化配置。下面通过实例看看如何在Spring Boot中使用JavaMailSender发送邮件。
快速入门:
那么如何进行使用呢?很简单最核心的就两个步骤:
在Spring Boot的工程中的pom.xml中引入spring-boot-starter-mail依赖:
1
2
3
4
5
|
<!-- 发送邮件. -->
<
dependency
>
<
groupId
>org.springframework.boot</
groupId
>
<
artifactId
>spring-boot-starter-mail</
artifactId
>
</
dependency
>
|
如其他自动化配置模块一样,在完成了依赖引入之后,只需要在application.properties中配置相应的属性内容。
下面我们以QQ邮箱为例,在application.properties中加入如下配置(注意替换自己的用户名和密码):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
########################################################
###mail setting
########################################################
# 设置邮箱主机
spring.mail.host=smtp.qq.com
# 设置用户名
spring.mail.username=用户名
# 设置密码
spring.mail.password=密码
# 设置是否需要认证,如果为
true
,那么用户名和密码就必须的,
#如果设置
false
,可以不设置用户名和密码,当然也得看你的对接的平台是否支持无密码进行访问的。
spring.mail.properties.mail.smtp.auth=
true
# STARTTLS[
1
] 是对纯文本通信协议的扩展。它提供一种方式将纯文本连接升级为加密连接(TLS或SSL),而不是另外使用一个端口作加密通信。
spring.mail.properties.mail.smtp.starttls.enable=
true
spring.mail.properties.mail.smtp.starttls.required=
true
|
接下来我们通过单元测试来测试简单邮件的发送:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
package
com.kfit;
import
org.junit.Test;
import
org.junit.runner.RunWith;
import
org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.boot.test.SpringApplicationConfiguration;
import
org.springframework.mail.SimpleMailMessage;
import
org.springframework.mail.javamail.JavaMailSender;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
*
*
* @version v.0.1
*/
@RunWith
(SpringJUnit4ClassRunner.
class
)
@SpringApplicationConfiguration
(classes = App.
class
)
|