文章目录
- 1. 开启邮箱SMTP服务
- 2. 导入pom依赖
- 3. 在配置文件中添加邮箱配置
- 3. 封装EmailTask类
- 4. 写测试类
1. 开启邮箱SMTP服务
这里以163邮箱为例,点击设置——更多设置——POP3/SMTP/IMAP——开启服务
根据提示开启服务之后会得到一个授权码,只显示一次,需要把这个授权码记下来。
接下来看看如何在SpringBoot项目中实现发送邮件功能~
2. 导入pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
3. 在配置文件中添加邮箱配置
在配置文件中添加邮箱相关配置(这里使用的是yml
配置文件):
spring:
mail:
default-encoding: UTF-8
host: smtp.163.com
username: 你的邮箱用户名@163.com
password: 上一步得到的授权码
system:
email: 你的邮箱用户名@163.com
注意:只能在spring.mail下配置SMTP服务器的连接信息,否则之后运行会报错No qualifying bean of type org.springframework.mail.javamail.JavaMailSender
。并且这里的password是授权码,而不是你的邮箱密码。
此外,可以配置用于发件的邮箱便于项目其他地方使用,位置可以自定义。
3. 封装EmailTask类
封装EmailTask
类方便使用:
@Component
public class EmailTask implements Serializable {
@Autowired
private JavaMailSender javaMailSender;
@Value("${system.email}")
private String mailbox;
public void sendEmail(SimpleMailMessage message){
message.setFrom(mailbox);
// 抄送给自己
message.setCc(mailbox);
javaMailSender.send(message);
}
}
有时候可能会将我们发送的邮件标记为垃圾邮件,这里抄送给自己便于查看。
4. 写测试类
在SpringBoot
测试类中写一个方法测试邮件发送功能:
@SpringBootTest
class EmosWxApiApplicationTests {
@Autowired
private EmailTask emailTask;
@Test
void sendEmail() {
SimpleMailMessage msg = new SimpleMailMessage();
msg.setTo("收件邮箱地址");
msg.setSubject("Testing Email");
msg.setText("Hello World");
emailTask.sendEmail(msg);
}
}
运行test方法,测试了发送给自己的163邮箱和qq邮箱,成功收到邮件。