邮箱配置
(以网易的 @163 邮箱为列)
1. 注册成功后点击设置、找到 POP3/SMTP/IMAP
2. 开启服务(这里如果生成随机的授权码、后面配置需要使用授权码。如果没有生成授权码、后边使用登录密码即可)
编码
1. 添加依赖
<!--邮箱依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2. 在springBoot的配置文件中添加配置(这里需要配置授权码、如果没有生成授权码、则配置密码)
spring:
mail:
host: smtp.163.com #邮箱配置中的服务器地址
username: #邮箱账号
password: #授权码或者密码
3. 发送邮件
@RestController
@RequestMapping("/email")
public class EmailController {
@Autowired
private MailProperties mailProperties;
@Autowired
private JavaMailSender javaMailSender;
/**
* 发送纯文本邮件
* @return
*/
@GetMapping("/simple")
public String simple(){
SimpleMailMessage message = new SimpleMailMessage();
// 发件人
message.setFrom(mailProperties.getUsername());
// 收件人
message.setTo("zhangsan@qq.com");
// 邮件标题
message.setSubject("2020年12月29日16:16:21");
// 邮件内容
message.setText("模拟测试");
javaMailSender.send(message);
return "SUCCESS";
}
/**
* 发送HTML格式的邮件
* @return
*/
@PostMapping("/simple/html")
public String simpleHtml() throws MessagingException {
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message);
// 发件人
helper.setFrom(mailProperties.getUsername());
// 收件人
helper.setTo("zhangsan@qq.com");
// 邮件标题
helper.setSubject("zangsan_HTML");
// 邮件内容 第二个参数表示是否是HTML
helper.setText("<h1>模拟测试</h1>" , true);
javaMailSender.send(message);
return "SUCCESS";
}
/**
* 发送带附件的邮件
* @return
*/
@PostMapping("/simple/file")
public String simpleFile() throws MessagingException {
MimeMessage message = javaMailSender.createMimeMessage();
// 第二个参数表示是否开启multipart模式
MimeMessageHelper helper = new MimeMessageHelper(message, true);
// 发件人
helper.setFrom(mailProperties.getUsername());
// 收件人
helper.setTo("zhangsan@qq.com");
// 邮件标题
helper.setSubject("张三绩效表");
// 邮件内容 第二个参数表示是否是HTML
helper.setText("<h1>张三本月绩效考核明细单</h1>" , true);
helper.addAttachment("张三.xlsx" , new ClassPathResource("static/zs.xlsx"));
javaMailSender.send(message);
return "SUCCESS";
}
}
4. 需要注意的是发送邮件的时候很可能会被接收者当成垃圾邮件、发送失败。
- 处理方法:可以把发送者添加到白名单中(刚添加后可能还是会被当成垃圾邮件、需要等待几个小时方可正常发送)。