1.预热阶段:以qq邮箱为例
(1)点击设置,切换到账户界面。
(2)下拉至POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,开启POP3/SMTP选项。(获取授权码,保存!)
2.发送阶段:
(1)引入jar包依赖:
<!-- 邮件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
(2)application.yml配置邮箱信息:
spring:
#配置邮箱基本信息
mail:
#配置 SMTP 服务器地址
host: smtp.qq.com
#SMTP 服务器的端口
port: 587
#配置邮箱用户名
username: 2636677955@qq.com
#配置密码(POP3/SMTP授权码)
password: fhfffugewpzmeaic
#默认的邮件编码
default-encoding: UTF-8
properties:
mail:
smtp:
#配饰 SSL 加密工厂
socketFactoryClass: javax.net.ssl.SSLSocketFactory
#开启 DEBUG 模式:发送邮件时打印日志
debug: true
(3)发送邮件:
邮件一:
@Autowired
JavaMailSender javaMailSender;
@Test
public void sendSimpleMail() {
SimpleMailMessage message = new SimpleMailMessage();
#设置邮件主题
message.setSubject("一封测试邮件");
#设置邮件发送者
message.setFrom("2636677955@qq.com");
#设置邮件接收者(可多个)
message.setTo("2822911343@qq.com");
//邮件抄送人(可多个)
// message.setCc("13xxxxx63@qq.com");
//邮件隐秘抄送人(可多个)
// message.setBcc("16xxxxx66@qq.com");
#设置邮件发送日期
message.setSentDate(new Date());
#设置邮件的正文
message.setText("测试邮件信息");
#发送
javaMailSender.send(message);
}
效果展示如下:
邮件二:带附件的邮件
@Test
public void sendAttachFileMail() throws MessagingException {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
helper.setSubject("一封附件测试邮件");
helper.setFrom("2636677955@qq.com");
helper.setTo("2822911343@qq.com");
// helper.setCc("13xxxxx63@qq.com");
// helper.setBcc("16xxxxx66@qq.com");
helper.setSentDate(new Date());
helper.setText("测试邮件信息");
#邮箱附件地址
helper.addAttachment("javaPic.jpg",new File("C:\\Users\\Administrator\\Desktop\\任务\\1.png"));
javaMailSender.send(mimeMessage);
}
效果展示如下:
邮件三:Thymeleaf 作邮件模板
Thymeleaf 的自动化配置提供了一个 TemplateEngine,通过 TemplateEngine 可以方便的将 Thymeleaf 模板渲染为 HTML。
a.引入jar包依赖:
<!-- Thymeleaf 依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
b.在 resources/templates 目录下创建一个 mail.html 作为邮件发送模板:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>欢迎加入 CSDN 大家庭,您的基本信息如下:</p>
<table border="1" width="150">
<tr>
<td>姓名</td>
<td th:text="${userName}"></td>
</tr>
<tr>
<td>密码</td>
<td th:text="${passWord}"></td>
</tr>
<tr>
<td>rel名字</td>
<td th:text="${realName}"></td>
</tr>
</table>
<br />
<div style="color: #FF0000">good good study、day day up</div>
</body>
</html>
c.邮件测试
@Autowired
TemplateEngine templateEngine;
@Test
public void sendThymeleafMail() throws MessagingException {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setSubject("一封附件测试邮件");
helper.setFrom("2636677955@qq.com");
helper.setTo("2822911343@qq.com");
// helper.setCc("37xxxxx37@qq.com");
// helper.setBcc("14xxxxx098@qq.com");
helper.setSentDate(new Date());
Context context = new Context();
context.setVariable("userName", "尤雨溪");
context.setVariable("passWord","123456");
context.setVariable("realName", "vue");
String process = templateEngine.process("mail.html", context);
helper.setText(process,true);
javaMailSender.send(mimeMessage);
}
效果展示如下: