中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Springboot實現發送郵件

發布時間:2021-10-21 13:33:02 來源:億速云 閱讀:176 作者:iii 欄目:開發技術

這篇文章主要介紹“怎么用Springboot實現發送郵件”,在日常操作中,相信很多人在怎么用Springboot實現發送郵件問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么用Springboot實現發送郵件”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

具體內容如下

第一章 背景介紹

1.1 使用場景

1、注冊驗證;
2、網站營銷;
3、安全的最后一道防線;
4、提醒、監控警告;
5、觸發機制。

1.2 郵件發送原理

1.郵件傳輸協議:SMTP協議和POP3協議
2.內容不斷發展:IMAP和Mme協議

1.3 郵件發送流程

怎么用Springboot實現發送郵件

第二章 使用SpringBoot完成郵件發送

2.1 開發流程

怎么用Springboot實現發送郵件

2.2 開發簡單文本郵件

2.2.1 引入相關jar包

在pom.xml中添加依賴

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

2.2.2 配置郵箱參數

在配置文件里面配置:這里的密碼是授權碼,不是網頁上的密碼

spring.mail.host=smtp.163.com
spring.mail.username=XXX@163.com
spring.mail.password=XXX
spring.mail.default-encoding=utf-8

2.2.3 封裝SimpleMailMessage

SimpleMailMessage message = new SimpleMailMessage();

2.2.4 JavaMailSender進行發送

@Autowired
private JavaMailSender mailSender;
//使用JavaMailSender發送郵件
mailSender.send(message);

具體的實現:

/**
 * @Description: 發送郵件
 * @Author: yzy
 * @Date:  2021/10/19 14:01
 **/
@Service
public class MailService {

    @Value("${spring.mail.username}")
    private String sendPeople;

    @Autowired
    private JavaMailSender mailSender;

    /**
     * @Description:  發送文本文件
     * @author:       yzy
     * @date:         2021/10/19 14:01
     * @Param:
     * @return:
     */
     public void sendSimpleMail(String to,String subject,String content) {
         SimpleMailMessage message = new SimpleMailMessage();
         //接收方
         message.setTo(to);
         //發送郵件的主題
         message.setSubject(subject);
         //發送郵件內容
         message.setText(content);
         //發送人
         message.setFrom(sendPeople);
         //使用JavaMailSender發送郵件
         mailSender.send(message);

     }

}

測試:

package com.yzy.restaurant.mapper;

import com.yzy.restaurant.MailService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class MailTest {

    @Autowired
    private MailService mailService;


    @Test
    public void sendSimpleMailTest() {
        mailService.sendSimpleMail("yzy20162362@163.com","這是一個簡單的demo","哈哈哈,發送成功了!");
    }
}

啟動:

怎么用Springboot實現發送郵件

效果:

怎么用Springboot實現發送郵件

2.3 開發HTML郵件

上代碼,在MailService 和MailTest 加

/**
      * @Description:  發送html郵寄
      * @author:       yzy
      * @date:         2021/10/19 14:58
      * @Param:
      * @return:
      */
     public void sendMailHtml(String to,String subject,String content) throws MessagingException {
         MimeMessage message = mailSender.createMimeMessage();
         MimeMessageHelper helper = new MimeMessageHelper(message,true);
         helper.setTo(to);
         helper.setSubject(subject);
         helper.setText(content,true);
         helper.setFrom(sendPeople);
         mailSender.send(message);
     }
/**
      * @Description:  發送html郵寄
      * @author:       yzy
      * @date:         2021/10/19 14:58
      * @Param:
      * @return:
      */
     public void sendMailHtml(String to,String subject,String content) throws MessagingException {
         MimeMessage message = mailSender.createMimeMessage();
         MimeMessageHelper helper = new MimeMessageHelper(message,true);
         helper.setTo(to);
         helper.setSubject(subject);
         helper.setText(content,true);
         helper.setFrom(sendPeople);
         mailSender.send(message);
     }

2.3 開發附件郵件

上代碼,在MailService 和MailTest 加

  /**
      * @Description:  發送附件郵件
      * @author:       yzy
      * @date:         2021/10/19 15:12
      * @Param:
      * @return:
      */
     public void sendAttachmentsMail(String to,String subject,String content,String filePath) throws MessagingException {
         MimeMessage message = mailSender.createMimeMessage();
         MimeMessageHelper helper = new MimeMessageHelper(message,true);
         helper.setTo(to);
         helper.setSubject(subject);
         helper.setText(content,true);
         helper.setFrom(sendPeople);

         //讀取
         FileSystemResource file = new FileSystemResource(new File(filePath));
         //獲取文件名
         String filename = file.getFilename();
         //設置附件
         helper.addAttachment(filename,file);
         //發送
         mailSender.send(message);

     }
 @Test
    public void sendAttachmentsMailTest() throws MessagingException {
        String filePath = "D:/玖佳智能 2020年3月第3周周工作匯總(3月16-3月20日)(1).xlsx";
        mailService.sendAttachmentsMail("yzy20162362@163.com","這是一封附件郵件","哈哈哈,附件郵件發送成功了",filePath);
    }

2.4 圖片郵件

上代碼,在MailService 和MailTest 加

/**
      * @Description:  帶圖片郵件
      * @author:       yzy
      * @date:         2021/10/19 15:35
      * @Param:
      * @return:
      */
    public void sendPhotoMail(String to,String subject,String content,String rscPath, String rscId) throws MessagingException {
        MimeMessage message = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message,true);
        helper.setTo(to);
        helper.setSubject(subject);
        helper.setText(content,true);
        helper.setFrom(sendPeople);

        //讀取
        FileSystemResource rec = new FileSystemResource(new File(rscPath));
        helper.addInline(rscId,rec);
        //發送
        mailSender.send(message);


}
@Test
    public void sendPhotoMailTest () throws MessagingException {
        String imgPath = "C:\\Users\\yzy\\Desktop\\微信圖片_20210917201828.jpg";
        String rsc = "0001";
        mailService.sendPhotoMail("yzy20162362@163.com","這是一封圖片郵件","哈哈哈,圖片郵件發送成功了",imgPath,rsc);
    }

2.5 郵件模板

模板郵件特別適用于:

1.用戶注冊的郵件;2.忘記密碼的郵件

我用的是thymeleaf,前提是themleaf已經配置好,上代碼
新建emailTemplate的頁面:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>郵件模板</title>
</head>
<body>
    你好,感謝您的注冊,這是一封驗證郵件,請點擊下面的連接完成注冊,感謝您的支持!<br>
    <a rel="#" th:href="@{https://mail.163.com}" rel="external nofollow" >激活賬戶</a>>
</body>
</html>

測試代碼:

@Test
    public void sendTemplateMailTest () throws MessagingException {
        Context content = new Context();
        content.setVariable("id","111");
        String emailContent = templateEngine.process("emailTemplate", content);
        mailService.sendMailHtml("yzy20162362@163.com","這是一封模板郵件",emailContent);
    }

到此,關于“怎么用Springboot實現發送郵件”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通渭县| 泰来县| 石嘴山市| 肇庆市| 松江区| 长葛市| 旬邑县| 台江县| 谢通门县| 龙泉市| 黑河市| 马鞍山市| 武乡县| 孝义市| 澄迈县| 湖南省| 车致| 泰宁县| 施甸县| 屯留县| 二手房| 海伦市| 饶平县| 米林县| 托里县| 武汉市| 崇左市| 清镇市| 富源县| 桂平市| 上虞市| 涟水县| 昌黎县| 新源县| 平塘县| 洪雅县| 全椒县| 杂多县| 建始县| 江源县| 台江县|