在开发过程中,偶尔会使用到邮箱服务,而在SpringBoot中使用邮箱服务是比较简单的,在这里简单记录一下使用过程。
一:准备工作
首先,我们需要去开通 POP3/SMTP服务,我这边使用的是QQ邮箱。QQ邮箱的POP3/SMTP服务在设置——账户的位置,入图:
开启服务后,会得到一个密钥,记住待会要用到。
二:代码实现
导入依赖
在pom文件里导入springboot邮件相关依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
配置application.yml文件中添加邮箱配置
spring:
mail:
default-encoding: UTF-8
host: smtp.qq.com
username: test@qq.com
password: XXXXXXXXXX
port: 587
protocol: smtp
其中,spring.mail.host是QQ邮箱服务器地址,spring.mail.username是刚刚开启POP3/SMTP服务的邮箱,spring.mail.password是刚刚开启POP3/SMTP服务得到的密钥,而不是QQ邮箱密码!
实现
这里是简单实现,就直接在测试类里写了。
简单邮件
@Autowired
JavaMailSenderImpl mailSender;//实施邮件发送的对象
@Test
void testEmail(){
SimpleMailMessage message = new SimpleMailMessage();
//标题
message.setSubject("测试");
//收件人
message.setTo("XXXXX@qq.com");
//发件人
message.setFrom("XXXXXX@qq.com");
//邮件内容
message.setText("测试SpringBoot邮箱功能");
mailSender.send(message);
}
附件邮件
@Autowired
JavaMailSenderImpl mailSender;//实施邮件发送的对象
@Test
void testComplicatedEmail(){
MimeMessage message = mailSender.createMimeMessage();
try {
MimeMessageHelper messageHelper = new MimeMessageHelper(message, true);
//附件
File file = new File("C:\\code\\SpringDemo\\src\\main\\resources\\static\\test.txt");
//收件人
messageHelper.setTo("xxx@qq.com");
//发件人
messageHelper.setFrom("xxx@qq.com");
//标题
messageHelper.setSubject("附件测试");
//发送html
messageHelper.setText("<html><body><h1>hello world</h1></body></html>",true);
//附件
messageHelper.addAttachment("测试附件.txt",file);
mailSender.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
}
图片邮件
@Autowired
JavaMailSenderImpl mailSender;//实施邮件发送的对象
@Test
void testPicEmail(){
MimeMessage message = mailSender.createMimeMessage();
try {
MimeMessageHelper messageHelper = new MimeMessageHelper(message, true);
//收件人
messageHelper.setTo("xxx@qq.com");
//发件人
messageHelper.setFrom("xxx@qq.com");
//标题
messageHelper.setSubject("附件测试");
//发送html
messageHelper.setText("<html><body><img src='cid:img'/></body></html>", true);
// 传入附件
File pic = new File("C:\\code\\SpringDemo\\src\\main\\resources\\static\\d1.jpg");
messageHelper.addInline("img", pic);
mailSender.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
}