pom.xml
springboot 2.5.0
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
application.yml
spring:
mail:
# default smtp
protocol: smtps
host: smtp.163.com
port: 465
username: AutomaticAlert@163.com
# 授权码
password: password
default-encoding: UTF-8
properties:
mail:
#配置SSL 加密工厂
# smtp:
# ssl:
#本地测试,先放开ssl
# enable: true
# required: false
# 表示开启 DEBUG 模式,这样,邮件发送过程的日志会在控制台打印出来,方便排查错误
debug: true
# freemarker config
freemarker:
# default path: classpath:/templates/
template-loader-path: classpath:/templates/
测试类
@RestController
@Slf4j
public class EmailController {
@Autowired
JavaMailSender javaMailSender;
@Autowired
private Configuration configuration;
@Value("${spring.mail.username}")
private String sendFrom;
@GetMapping("/email")
public void email(){
try {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, StandardCharsets.UTF_8.name());
mimeMessageHelper.setFrom(sendFrom);
mimeMessageHelper.setTo("kaili0230@qq.com");
mimeMessageHelper.setSubject("email");
mimeMessageHelper.setSentDate(new Date());
//增加模板,填充信息,发送邮件
Map<String, String> params =new HashMap<String, String>();
params.put("name", "kl");
params.put("url", "http://www.baidu.com");
Template template = configuration.getTemplate("email-demo.htm", StandardCharsets.UTF_8.name());
String mailText = FreeMarkerTemplateUtils.processTemplateIntoString(template, params);
mimeMessageHelper.setText(mailText, true); // 注明html
javaMailSender.send(mimeMessage);
} catch (Exception e) {
log.error("test2 email error.", e);
}
}
}
目录结构
email-demo.htm
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv=Content-Type content="text/html; charset=UTF-8">
</head>
<body lang=ZH-CN link="#0563C1" vlink="#954F72" style='tab-interval:21.0pt;
text-justify-trim:punctuation'>
<div class=WordSection1>
<p class=MsoNormal><a name="_MailOriginal"><span lang=EN-US>Hi ${name},<o:p></o:p></span></a></p>
<p class=MsoNormal><span style='mso-bookmark:_MailOriginal'><span lang=EN-US> </span>恭喜你,可以点击下链接打开百度。<span
lang=EN-US><o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_MailOriginal'><span lang=EN-US> </span></span><span
style='mso-bookmark:_MailOriginal'></span><a
href="${url}"><span
style='mso-bookmark:_MailOriginal'><span lang=EN-US style='font-family:-apple-system;
border:none windowtext 1.0pt;mso-border-alt:none windowtext 0cm;padding:0cm;
background:white'>${url}</span></span><span
style='mso-bookmark:_MailOriginal'></span></a><span style='mso-bookmark:_MailOriginal'><span
lang=EN-US><o:p></o:p></span></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
</div>
</body>
</html>
将Outlook中编辑好的邮件通过 文件 -> 另存为 -> 选择htm,html 类型.打开文件替换里面的变量 ${value}