本文來自于千鋒教育在阿裡雲開發者社群學習中心上線課程《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("[email protected]", "呵呵", "info.html");
return "success";
}
執行結果: