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后
打开邮件