首先需要在 pom 文件中导入相应的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
随后需要在 application.yml
中进行 mail 相关属性的配置,如下所示:
mail:
host: smtp.exmail.qq.com #以腾讯企业邮箱为例,具体的 host 地址可以在相应的邮箱设置中找到,需要的是发送协议smtp
username: your@email.com #需要发送邮件的邮箱登录名
password: yourPasscodeHere #注意这里需要的是在相应邮箱服务中得到的授权码而不是邮箱的密码
default-encoding: UTF-8 #编码格式
port: 465 #发送端口地址,同样在邮箱设置中查找
properties:
mail:
smtp:
auth: true
starttls:
enable: true
required: true
socketFactory:
port: 465
class: javax.net.ssl.SSLSocketFactory
编写测试用例 ```java import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.util.StringUtils;
@SpringBootTest class ApplicationTests {
@Value("${spring.mail.username}")
private String sendMail;
@Autowired
private JavaMailSender javaMailSender;
public String sendSimpleMsg(String msg, String receiveMail) {
if (StringUtils.isEmpty(msg)) {
return "请输入消息内容";
} else if (StringUtils.isEmpty(receiveMail)){
return "请输入目标邮箱";
} else if (!receiveMail.contains("@")) {
return "请输入正确的邮箱";
}
try {
SimpleMailMessage mail = new SimpleMailMessage();
mail.setFrom(sendMail);
mail.setTo(receiveMail);
mail.setSubject("测试邮件内容...");
mail.setText(msg);
javaMailSender.send(mail);
return "发送成功";
} catch (Exception e) {
e.printStackTrace();
return "发送失败";
}
}
@Test
void contextLoads() {
sendSimpleMsg("测试邮件", "receive@mail.com");
}
}
**注:** 在这里需要实例化一个 ``SimpleMailMessage``对象对邮件进行设置,源代码表明可以对如下内容进行设置:
```java
@Nullable
private String from; #发送人
@Nullable
private String replyTo; #回复人
@Nullable
private String[] to; #接收人列表
@Nullable
private String[] cc; #副本抄送对象(carbon copy),抄送对象间可知
@Nullable
private String[] bcc; #暗抄送对象(blind carbon copy),暗抄送对象间不可知
@Nullable
private Date sentDate; #发送日期
@Nullable
private String subject; #邮件主题
@Nullable
private String text; #邮件内容