Spring boot之發送郵件

1.預熱階段:以qq郵箱爲例
(1)點擊設置,切換到賬戶界面。
在這裏插入圖片描述
(2)下拉至POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務,開啓POP3/SMTP選項。(獲取授權碼,保存!)
在這裏插入圖片描述
2.發送階段:
(1)引入jar包依賴:

<!-- 郵件 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-mail</artifactId>
		</dependency>

(2)application.yml配置郵箱信息:

spring:
  #配置郵箱基本信息
  mail:
    #配置 SMTP 服務器地址
    host: smtp.qq.com
    #SMTP 服務器的端口
    port: 587
    #配置郵箱用戶名
    username: [email protected]
    #配置密碼(POP3/SMTP授權碼)
    password: fhfffugewpzmeaic
    #默認的郵件編碼
    default-encoding: UTF-8
    properties:
      mail:
        smtp:
          #配飾 SSL 加密工廠
          socketFactoryClass: javax.net.ssl.SSLSocketFactory
        #開啓 DEBUG 模式:發送郵件時打印日誌
        debug: true

(3)發送郵件:

郵件一:

	@Autowired
    JavaMailSender javaMailSender;
    @Test
    public void sendSimpleMail() {
        SimpleMailMessage message = new SimpleMailMessage();
        #設置郵件主題
        message.setSubject("一封測試郵件");
        #設置郵件發送者
        message.setFrom("[email protected]");
        #設置郵件接收者(可多個)
        message.setTo("[email protected]");
        //郵件抄送人(可多個)
//        message.setCc("[email protected]");
        //郵件隱祕抄送人(可多個)
//        message.setBcc("[email protected]");
		#設置郵件發送日期
        message.setSentDate(new Date());
        #設置郵件的正文
        message.setText("測試郵件信息");
        #發送
        javaMailSender.send(message);
    }

效果展示如下:
在這裏插入圖片描述

郵件二:帶附件的郵件

	@Test
    public void sendAttachFileMail() throws MessagingException {
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
        helper.setSubject("一封附件測試郵件");
        helper.setFrom("[email protected]");
        helper.setTo("[email protected]");
//        helper.setCc("[email protected]");
//        helper.setBcc("[email protected]");
        helper.setSentDate(new Date());
        helper.setText("測試郵件信息");
        #郵箱附件地址
        helper.addAttachment("javaPic.jpg",new File("C:\\Users\\Administrator\\Desktop\\任務\\1.png"));
        javaMailSender.send(mimeMessage);
    }

效果展示如下:
在這裏插入圖片描述

郵件三:Thymeleaf 作郵件模板
Thymeleaf 的自動化配置提供了一個 TemplateEngine,通過 TemplateEngine 可以方便的將 Thymeleaf 模板渲染爲 HTML。

a.引入jar包依賴:

		<!-- Thymeleaf 依賴-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-thymeleaf</artifactId>
		</dependency>

b.在 resources/templates 目錄下創建一個 mail.html 作爲郵件發送模板:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<p>歡迎加入 CSDN 大家庭,您的基本信息如下:</p>
<table border="1" width="150">
    <tr>
        <td>姓名</td>
        <td th:text="${userName}"></td>
    </tr>
    <tr>
        <td>密碼</td>
        <td th:text="${passWord}"></td>
    </tr>
    <tr>
        <td>rel名字</td>
        <td th:text="${realName}"></td>
    </tr>
</table>
<br />
<div style="color: #FF0000">good good study、day day up</div>
</body>
</html>

c.郵件測試

	@Autowired
    TemplateEngine templateEngine;

    @Test
    public void sendThymeleafMail() throws MessagingException {
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
        helper.setSubject("一封附件測試郵件");
        helper.setFrom("[email protected]");
        helper.setTo("[email protected]");
//        helper.setCc("[email protected]");
//        helper.setBcc("[email protected]");
        helper.setSentDate(new Date());
        Context context = new Context();
        context.setVariable("userName", "尤雨溪");
        context.setVariable("passWord","123456");
        context.setVariable("realName", "vue");
        String process = templateEngine.process("mail.html", context);
        helper.setText(process,true);
        javaMailSender.send(mimeMessage);
    }

效果展示如下:
在這裏插入圖片描述

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