上一篇:如何实现发送带附件的邮件? | 带你读《SpringBoot实战教程》之二十六
下一篇:SpringBoot实现文件上传 | 带你读《SpringBoot实战教程》之二十八
本文来自于千锋教育在阿里云开发者社区学习中心上线课程《SpringBoot实战教程》,主讲人杨红艳,点击查看视频内容。
实现发送模板邮件
模板:使用一些相同的模板,但里面的数据是可以变化的。
添加模板引擎依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
依然在之前的案例中添加实现代码:
EmailService:
//发送模板邮件
void sendTemplateMail(String sendTo, String title, String info);
EmailServiceImpl:
@Autowired
private FreeMarkerConfigurer freeMarkerConfig;
@Override
public void sendTemplateMail(String sendTo, String title,String info) {
MimeMessage msg = mailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(msg, true);
helper.setFrom(emailConfig.getEmailFrom());
helper.setTo(sendTo);
helper.setSubject(title);
//封装模板使用的数据
Map<String, Object> model = new HashMap<>();
model.put("username", "小红");
//修改 application.properties 文件中的读取路径
// FreeMarkerConfigurer configurer = new FreeMarkerConfigurer();
// configurer.setTemplateLoaderPath("classpath:templates");
//读取 html 模板
Template template = freeMarkerConfigurer.getConfiguration().getTemplate(info);
String html = FreeMarkerTemplateUtils.processTemplateIntoString(template, model);
helper.setText(html, true);
} catch (Exception e) {
e.printStackTrace();
}
mailSender.send(msg);
}
EmailController:
@RequestMapping("/template")
@ResponseBody
public String sendTemplateEmail() {
emailService.sendTemplateMail("465008297@qq.com", "呵呵", "info.html");
return "success";
}
执行结果: