天天看點

如何發送基于模闆的郵件? | 帶你讀《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("[email protected]", "呵呵", "info.html");  
        return "success";          
    }           

執行結果:

如何發送基于模闆的郵件? | 帶你讀《SpringBoot實戰教程》之二十七
如何發送基于模闆的郵件? | 帶你讀《SpringBoot實戰教程》之二十七

配套視訊