最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot3整合郵件服務(wù)實現(xiàn)郵件發(fā)送功能

 更新時間:2024年05月28日 09:39:08   作者:蒾酒  
本文介紹了spring boot整合email服務(wù),實現(xiàn)發(fā)送驗證碼,郵件(普通文本郵件、靜態(tài)資源郵件、附件郵件),文中通過代碼示例介紹的非常詳細,堅持看完相信對你有幫助,需要的朋友可以參考下

內(nèi)容概要

本文介紹了spring boot整合email服務(wù),實現(xiàn)發(fā)送驗證碼,郵件(普通文本郵件、靜態(tài)資源郵件、附件郵件)。

開通服務(wù)

實現(xiàn)email服務(wù)需要先將自己的郵箱開通POP3/IMAP服務(wù)才可以通過該郵箱發(fā)送郵件,開通步驟如下:

這里以QQ郵箱為例

1.進入QQ郵箱官網(wǎng)

登錄QQ郵箱

2.登錄后點擊設(shè)置

3.選擇賬號

找到 POP3/IMAP.....服務(wù)這里開啟你的服務(wù),這里我已經(jīng)開啟了的。

4.開啟服務(wù)

開啟成功會得到授權(quán)碼 ,記住這個授權(quán)碼。下面開始在spring boot中整合。

spring boot整合

1.依賴引入

pom.xml:

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

2.配置屬性

application.yml:

修改成你自己的實際信息。

spring:
  #郵件服務(wù)配置
  mail:
    host: smtp.qq.com #郵件服務(wù)器地址
    protocol: smtp #協(xié)議
    username: 305462*****@qq.com #發(fā)送郵件的郵箱也就是你開通服務(wù)的郵箱
    password: fiwvcy******d #開通服務(wù)后得到的授權(quán)碼
    default-encoding: utf-8 #郵件內(nèi)容的編碼

3.創(chuàng)建郵件發(fā)送工具類

使用@component注解標記為組件,可以在Service中注入使用。

里面一共定義了三種發(fā)送郵件方法:

  • 發(fā)送純文本的普通郵件,可以發(fā)送一些純文本的消息以及驗證碼內(nèi)容。
  • 發(fā)送HTML格式的文本內(nèi)容,可以發(fā)一些靜態(tài)資源,圖片,音頻,視頻等,也可以發(fā)驗證碼信息。
  • 發(fā)送攜帶附件的郵件,比如word,excel,pdf文檔或者其他文件。

具體可以根據(jù)業(yè)務(wù)需求調(diào)整代碼。我實現(xiàn)的較為簡單可以當(dāng)個模板使用。

import jakarta.annotation.Resource;
import jakarta.mail.internet.MimeMessage;
import lombok.SneakyThrows;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
 
import java.io.File;
import java.util.Objects;
 
/**
 * @author mijiupro
 */
@Component
public class EmailUtil {
    @Resource
    private JavaMailSender mailSender;
 
    @Value("${spring.mail.username}")
    private String from ;// 發(fā)件人
 
    /**
     * 發(fā)送一般郵件--無附件
     * @param to 收件人
     * @param subject 主題
     * @param content 內(nèi)容
     * @return 是否成功
     */
    @SneakyThrows(Exception.class)
    public boolean sendGeneralEmail(String subject, String content, String... to){
        // 創(chuàng)建郵件消息
        org.springframework.mail.SimpleMailMessage message = new org.springframework.mail.SimpleMailMessage();
        message.setFrom(from);
        // 設(shè)置收件人
        message.setTo(to);
        // 設(shè)置郵件主題
        message.setSubject(subject);
        // 設(shè)置郵件內(nèi)容
        message.setText(content);
 
        // 發(fā)送郵件
        mailSender.send(message);
 
        return true;
    }
    /**
     * 發(fā)送帶附件的郵件
     * @param to 收件人
     * @param subject 主題
     * @param content 內(nèi)容
     * @param filePaths 附件路徑
     * @return 是否成功
     */
    @SneakyThrows(Exception.class)
    public boolean sendAttachmentsEmail(String subject, String content, String[] to, String[] filePaths) {
        // 創(chuàng)建郵件消息
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
        helper.setFrom(from);
        // 設(shè)置收件人
        helper.setTo(to);
        // 設(shè)置郵件主題
        helper.setSubject(subject);
        // 設(shè)置郵件內(nèi)容
        helper.setText(content);
 
        // 添加附件
        if (filePaths != null) {
            for (String filePath : filePaths) {
                FileSystemResource file = new FileSystemResource(new File(filePath));
                helper.addAttachment(Objects.requireNonNull(file.getFilename()), file);
 
            }
        }
        // 發(fā)送郵件
        mailSender.send(mimeMessage);
        return true;
    }
 
    /**
     * 發(fā)送帶靜態(tài)資源的郵件
     * @param to 收件人
     * @param subject 主題
     * @param content 內(nèi)容
     * @param rscPath 靜態(tài)資源路徑
     * @param rscId 靜態(tài)資源id
     * @return 是否成功
     */
    @SneakyThrows(Exception.class)
    public boolean sendInlineResourceEmail(String subject, String content, String to, String rscPath, String rscId) {
        // 創(chuàng)建郵件消息
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
        // 設(shè)置發(fā)件人
        helper.setFrom(from);
        // 設(shè)置收件人
        helper.setTo(to);
        // 設(shè)置郵件主題
        helper.setSubject(subject);
 
        //html內(nèi)容圖片
        String contentHtml = "<html><body>這是郵件的內(nèi)容,包含一個圖片:<img src=\'cid:" + rscId + "\'>"+content+"</body></html>";
 
        helper.setText(contentHtml, true);
        //指定講資源地址
        FileSystemResource res = new FileSystemResource(new File(rscPath));
        helper.addInline(rscId, res);
 
        mailSender.send(mimeMessage);
        return true;
    }
 
}

4.編寫測試用例測試

下面測試前兩種發(fā)送郵件的方法。

測試發(fā)送普通文本郵件

import com.mijiu.commom.util.EmailUtil;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
 
@SpringBootTest
public class EmailTest {
    @Autowired
    private EmailUtil emailUtil;
 
 
    @Test
    public void sendEmail() {
        //發(fā)送郵件
        boolean b = emailUtil.sendGeneralEmail("測試郵件", " 這是測試郵件", "你的郵箱@163.com");
        System.out.println(b);
    }
}

修改成發(fā)送目標郵箱運行代碼測試即可。 

測試成功。

測試發(fā)送圖片郵件

import com.mijiu.commom.util.EmailUtil;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
 
@SpringBootTest
public class EmailTest {
    @Autowired
    private EmailUtil emailUtil;
 
 
    @Test
    public void sendEmail() {
 
        // 發(fā)送圖片郵件
        boolean b = emailUtil.sendInlineResourceEmail("測試郵件", " 這是測試郵件", "你的郵箱@163.com",
                "C:\\Users\\mijiupro\\Desktop\\潮.jpg", "C:\\Users\\mijiupro\\Desktop\\潮.jpg");
        System.out.println(b);
    }
}

修改成發(fā)送目標郵箱運行代碼測試即可。  

以上就是SpringBoot3整合郵件服務(wù)實現(xiàn)郵件發(fā)送功能的詳細內(nèi)容,更多關(guān)于SpringBoot3郵件發(fā)送的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • springboot集成redis存對象亂碼的問題及解決

    springboot集成redis存對象亂碼的問題及解決

    這篇文章主要介紹了springboot集成redis存對象亂碼的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • java IO 字節(jié)流詳解及實例代碼

    java IO 字節(jié)流詳解及實例代碼

    這篇文章主要介紹了java IO 字節(jié)流詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • SpringBoot+Quartz實現(xiàn)定時任務(wù)的代碼模版分享

    SpringBoot+Quartz實現(xiàn)定時任務(wù)的代碼模版分享

    quartz?是一款開源且豐富特性的Java?任務(wù)調(diào)度庫,用于實現(xiàn)任務(wù)調(diào)度和定時任務(wù),本文主要和大家分享一個SpringBoot整合Quartz實現(xiàn)定時任務(wù)的代碼模版,需要的可以參考一下
    2023-06-06
  • 基于Java實現(xiàn)本地APK文件搜索與HTTP下載服務(wù)

    基于Java實現(xiàn)本地APK文件搜索與HTTP下載服務(wù)

    在移動應(yīng)用開發(fā)和測試過程中,經(jīng)常需要從本地服務(wù)器獲取最新的 APK 安裝包,本文將詳細介紹如何使用 Java 構(gòu)建一個能夠搜索本地最新 APK 文件并通過 HTTP 請求提供下載服務(wù)的應(yīng)用
    2025-07-07
  • java中關(guān)于控件JTextArea的幾個方法

    java中關(guān)于控件JTextArea的幾個方法

    這篇文章主要介紹了java中關(guān)于控件JTextArea的幾個方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • java虛擬機內(nèi)存溢出及泄漏實例

    java虛擬機內(nèi)存溢出及泄漏實例

    本篇文章給大家分享了java虛擬機內(nèi)存溢出及泄漏的實例以及相關(guān)知識點分享,有興趣的朋友參考學(xué)習(xí)下。
    2018-06-06
  • Java實現(xiàn)浪漫流星表白的示例代碼

    Java實現(xiàn)浪漫流星表白的示例代碼

    本文將利用Java語言實現(xiàn)浪漫流星表白,可以實現(xiàn)這些功能:播放音樂、自定義流星數(shù)量、飛行速度、光暈大小、流星大小,自定義表白話語,感興趣的可以學(xué)習(xí)一下
    2022-05-05
  • 替換 MyBatis-Plus 默認的 saveBatch的實現(xiàn)步驟

    替換 MyBatis-Plus 默認的 saveBatch的實現(xiàn)步驟

    本文主要介紹了替換 MyBatis-Plus 默認的 saveBatch的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-03-03
  • Nacos封裝通用HttpClient詳解

    Nacos封裝通用HttpClient詳解

    這篇文章主要介紹了Nacos封裝通用HttpClient用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • SpringBoot參數(shù)校驗與國際化使用教程

    SpringBoot參數(shù)校驗與國際化使用教程

    這篇文章主要給大家介紹了關(guān)于SpringBoot參數(shù)校驗與國際化使用教程的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11

最新評論

屏边| 象州县| 山东省| 阳春市| 东山县| 怀安县| 牟定县| 名山县| 宝山区| 类乌齐县| 淳安县| 瓦房店市| 南郑县| 弥渡县| 天峻县| 邢台县| 孝感市| 东源县| 崇义县| 龙州县| 贡觉县| 姜堰市| 北川| 江达县| 桐城市| 乐陵市| 陇西县| 商城县| 甘泉县| 宣恩县| 南平市| 收藏| 锡林郭勒盟| 湘潭市| 二连浩特市| 礼泉县| 镇宁| 平南县| 和政县| 寿阳县| 两当县|