SpringBoot中整合Mail实现发送模板邮件
场景
项目搭建专栏:
实现最简单的带标题以及文本内容的邮件发送:
实现
在上面成功实现发送简单邮件的基础上。
实现发送freemarker等模板文件邮件。
项目中引入模板相关依赖
<!-- springboot整合freemark --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency>
在src/main/resource下的templates下新建模板文件show.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>测试</title>
</head>
<body>
${username}
</body>
</html>
service中新增方法
void sendTemplateEmail(String sendTo,String title,String show);
实现方法
//发送模板的邮件
@Override
public void sendTemplateEmail(String sendTo, String title, String show) {
MimeMessage message =mailSender.createMimeMessage();
try {
MimeMessageHelper helper =new MimeMessageHelper(message,true);
helper.setFrom(emailConfig.getEmailFrom());
helper.setTo(sendTo);
helper.setSubject(title);
//封装模板使用的数据
Map<String, Object> model = new HashMap<>();
//这里的name要与模板中的一致
model.put("username", "霸道流氓气质");
//得到模板
//模板名字与templates中的模板名字一致
Template template = freeMarkerConfig.getConfiguration().getTemplate(show);
String html = FreeMarkerTemplateUtils.processTemplateIntoString(template, model);
helper.setText(html,true);
} catch (Exception e) {
e.printStackTrace();
}
mailSender.send(message);
}
新建Controller中的方法
将代码中的发送以及要发送的邮箱以及授权码赋值后运行。
效果
打开浏览器访问
等待返回success后
打开邮件
