文章目录
- 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-8host: smtp.163.comusername: 你的邮箱用户名@163.compassword: 上一步得到的授权码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 {@Autowiredprivate 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 {@Autowiredprivate EmailTask emailTask;@Testvoid sendEmail() {SimpleMailMessage msg = new SimpleMailMessage();msg.setTo("收件邮箱地址");msg.setSubject("Testing Email");msg.setText("Hello World");emailTask.sendEmail(msg);}
}
运行test方法,测试了发送给自己的163邮箱和qq邮箱,成功收到邮件。