如何发送基于模板的邮件? | 带你读《SpringBoot实战教程》之二十七

上一篇:如何实现发送带附件的邮件? | 带你读《SpringBoot实战教程》之二十六
下一篇: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";          
    }

执行结果:
如何发送基于模板的邮件? | 带你读《SpringBoot实战教程》之二十七
如何发送基于模板的邮件? | 带你读《SpringBoot实战教程》之二十七

配套视频

上一篇:《PHP高性能开发:基础、框架与项目实战》_王甲临


下一篇:2014 年 TOP 10 的 PHP 框架