SpringBoot------郵件發送

模板郵件發送

我們假設發送給用戶一封激活郵件

1.添加依賴:

1         <!--添加thymeleaf依賴  -->
2         <dependency>
3             <groupId>org.springframework.boot</groupId>
4             <artifactId>spring-boot-starter-thymeleaf</artifactId>
5         </dependency>

 

2.添加模板:

複製代碼

 1 <!DOCTYPE html>
 2 <html lang="zh" xmlns:th="http://www.thymeleaf.org">
 3 <head>
 4 <meta charset="UTF-8" >
 5 <title>賬號激活郵件</title>
 6 </head>
 7 <body>
 8  您好,這是驗證郵件,請點擊下面的鏈接完成驗證,<br/>
 9    <a href="#" th:href="@{ http://www.xm.com/eamil/{id}(id=${id}) }">激活賬號</a>
10 </body>
11 </html>

複製代碼

資料分享 學習羣:642461309

3.定義發送模板郵件業務接口:

複製代碼

1     /**
2      * 發送模板郵件
3      * @param to:收件人
4      * @param subject: 標題
5      * @param info:模板名
6      */
7     void sendTemplateMail(String to,String subject,String info);

複製代碼

 

4.實現發送模板郵件業務:

實現過程:

(1)實現接口

(2)定義模板解析器

(3)定義參數

(4)綁定參數到模板

(6)解析模板爲字符串

(6)封裝信件

(7)發送郵件

複製代碼

 1 package com.xm.service.impl;
 2 
 3 import java.io.File;
 4 
 5 import javax.mail.MessagingException;
 6 import javax.mail.internet.MimeMessage;
 7 
 8 import org.springframework.beans.factory.annotation.Autowired;
 9 import org.springframework.beans.factory.annotation.Value;
10 import org.springframework.mail.SimpleMailMessage;
11 import org.springframework.mail.javamail.JavaMailSender;
12 import org.springframework.mail.javamail.MimeMessageHelper;
13 import org.springframework.stereotype.Service;
14 import org.thymeleaf.TemplateEngine;
15 import org.thymeleaf.context.Context;
16 
17 import com.xm.service.EmailService;
18 /**
19  * 郵件發送業務實現
20  * @author xm
21  *
22  */
23 @Service
24 public class EmailServiceImpl implements EmailService {
25     
26     //獲取發送者信息
27     @Value("${mail.from.addr}")
28     private String from; 
29     
30     //定義郵件發送者
31     @Autowired
32     private JavaMailSender sender;
33     
34     @Autowired
35     //模板解析
36     private TemplateEngine templateEngine;
37 
38     
39 
40     @Override
41     public void sendTemplateMail(String to, String subject, String info) {
42         //創建多用途互聯網郵件
43                 MimeMessage message = sender.createMimeMessage();
44                 
45                 try {
46                     //封裝多用途互聯網郵件
47                     MimeMessageHelper helper = new MimeMessageHelper(message, true);
48                     helper.setFrom(from);
49                     helper.setTo(to);
50                     helper.setSubject(subject);
51                     //封裝模板參數
52                     Context context = new Context();
53                     context.setVariable("id", 1);
54                     //解析模板
55                     String content = templateEngine.process(info, context);
56                     
57                     //true:識別Html
58                     helper.setText(content, true);
59                     
60                 } catch (Exception e) {
61                     e.printStackTrace();
62                 }
63                 sender.send(message);
64     }
65 
66 }

複製代碼

 

5.定義測試:

複製代碼

1     @Test
2     /**
3      * 發送模板郵件
4      */
5     public void sendTemplateMail() {
6         emailService.sendTemplateMail("[email protected]", "激活郵件","EmailActivation");
7     }

複製代碼

 

測試結果截圖:


 

 

    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章