实现

在上面成功实现发送简单邮件的基础上。

实现发送freemarker等模板文件邮件。

项目中引入模板相关依赖

<!-- springboot整合freemark -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

在src/main/resource下的templates下新建模板文件show.html

SpringBoot中整合Mail实现发送模板邮件_发送模板邮件

 

<!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中的方法

@RequestMapping("sendTemplateEmail")
@ResponseBody
public String sendTemplateEmail() {

emailService.sendTemplateEmail("****@qq.com", "测试模板发送", "show.html");
return "success";
}

将代码中的发送以及要发送的邮箱以及授权码赋值后运行。

效果

打开浏览器访问

​​http://localhost:8080/sendTemplateEmail​​

SpringBoot中整合Mail实现发送模板邮件_源码下载_02

等待返回success后

SpringBoot中整合Mail实现发送模板邮件_发送模板邮件_03

 

打开邮件

SpringBoot中整合Mail实现发送模板邮件_源码下载_04