欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot整合Javamail實(shí)現(xiàn)郵件發(fā)送功能

 更新時(shí)間:2023年12月29日 09:22:36   作者:原來是好奇心  
郵件發(fā)送是一個(gè)很普遍的功能,springboot整合了相關(guān)的starter,本文給大家介紹了可以實(shí)現(xiàn)一個(gè)簡單的郵件發(fā)送功能的實(shí)例,文中通過代碼給大家介紹的非常詳細(xì),感興趣的朋友可以參考下

說明:郵件發(fā)送是一個(gè)很普遍的功能,springboot整合了相關(guān)的starter,以下方式可以實(shí)現(xiàn)一個(gè)簡單的郵件發(fā)送功能。

1、引入依賴

  • mail依賴,發(fā)送郵件使用
  • test依賴,測試使用
<!-- email -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!-- test -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>compile</scope>
</dependency>

2、配置yml文件

spring:
  mail:
    host: smtp.qq.com
    port: 25
    protocol: smtp
    username: 123456789@qq.com
    password: oujhlavdjhirgiee  
    default-encoding: UTF-8

注意:password屬性是郵箱授權(quán)碼,用于第三方接口調(diào)用使用, 而不是郵箱登錄密碼,需要登錄郵箱查看或者申請獲取。下面是qq郵箱授權(quán)碼獲取方式(設(shè)置->賬號(hào)->賬號(hào)安全)

3、編寫測試代碼

這里主要測試了發(fā)送兩種格式的郵件,一種是純文字的郵件,另一種是帶有附件的郵件。

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
 
@SpringBootTest
class EmailUtilsTest {
 
    // 發(fā)件人郵箱
    @Value("${spring.mail.username}")
    private String mailFrom;
 
    // 收件人郵箱
    private static String MAIL_TO = "zhangsan123@163.com";
 
    // 測試發(fā)送PDF文件的路徑
    private static String PDF_PATH = "E:\\test.pdf";
 
    @Autowired
    private JavaMailSender mailSender;
 
    /**
     * 測試發(fā)送文字內(nèi)容
     */
    @Test
    void testSendText() {
        // 郵件標(biāo)題
        String subject = "測試郵件";
        // 郵件文字內(nèi)容
        String textContent = "你好,這是測試郵件4";
        MimeMessage message = mailSender.createMimeMessage();
        try {
            MimeMessageHelper helper = new MimeMessageHelper(message, true);
            helper.setFrom(mailFrom);
            helper.setTo(MAIL_TO);
            helper.setSubject(subject);
            helper.setText(textContent, true);
            mailSender.send(message);
        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }
    }
 
    /**
     * 測試發(fā)送文件內(nèi)容
     */
    @Test
    void testSendFile() {
        // 郵件標(biāo)題
        String subject = "一份測試發(fā)送的PDF文件";
        // 郵件文本內(nèi)容
        String textContent = "這是您的文件,請注意查收";
        // 郵件文件內(nèi)容
        FileSystemResource pdfFile = new FileSystemResource(PDF_PATH);
        // 文件名字
        String fileName = "測試文件.pdf";
        MimeMessage message = mailSender.createMimeMessage();
        try {
            MimeMessageHelper helper = new MimeMessageHelper(message, true);
            helper.setFrom(mailFrom);
            helper.setTo(MAIL_TO);
            helper.setSubject(subject);
            helper.setText(textContent, true);
            // 如果一次要發(fā)送多個(gè)附件, 只需要添加多個(gè) helper.addAttachment() 即可
            helper.addAttachment(fileName, pdfFile);
            mailSender.send(message);
        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }
    }
 
    /**
     * 擴(kuò)展: 不使用yml文件, 使用對象的方式設(shè)置屬性值
     */
    @Test
    void testSendFileNoYml() {
        // 郵件標(biāo)題
        String subject = "一份測試發(fā)送的PDF文件";
        // 郵件文本內(nèi)容
        String textContent = "這是您的文件,請注意查收";
        // 郵件文件內(nèi)容
        FileSystemResource pdfFile = new FileSystemResource(PDF_PATH);
        // 文件名字
        String fileName = "測試文件.pdf";
        // 獲取自定義屬性的sender
        JavaMailSender javaMailSender = getJavaMailSender();
        MimeMessage message = javaMailSender.createMimeMessage();
        try {
            MimeMessageHelper helper = new MimeMessageHelper(message, true);
            helper.setFrom(mailFrom);
            helper.setTo(MAIL_TO);
            helper.setSubject(subject);
            helper.setText(textContent, true);
            // 如果一次要發(fā)送多個(gè)附件, 只需要添加多個(gè) helper.addAttachment() 即可
            helper.addAttachment(fileName, pdfFile);
            mailSender.send(message);
        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }
    }
 
    /**
     * 獲取自定義的屬性的 JavaMailSender 對象
     * @return JavaMailSender
     */
    public JavaMailSender getJavaMailSender(){
        JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
        // 設(shè)置發(fā)送的服務(wù)器ip (qq:smtp.qq.com   網(wǎng)易:smtp.126.com)
        javaMailSender.setHost("qq:smtp.qq.com");
        javaMailSender.setUsername("1454376161@qq.com");
        // 郵箱授權(quán)碼
        javaMailSender.setPassword("oujhldvdjhirgiea");
        // 設(shè)置端口(默認(rèn)25, 或者設(shè)置456)
        javaMailSender.setPort(465);
        // 設(shè)置編碼方式,避免常出現(xiàn)亂碼 
        javaMailSender.setDefaultEncoding("UTF-8");
        
        //其他屬性
        Properties p = new Properties();
        p.setProperty("mail.smtp.auth", "true");
        p.setProperty("mail.smtp.ssl", "true");
        p.setProperty("mail.smtp.socketFactory.port", "465");
        p.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        p.setProperty("mail.smtp.starttls.enable", "true");
        p.setProperty("mail.smtp.starttls.required", "true");
        javaMailSender.setJavaMailProperties(p);
        return javaMailSender;
    }
}

到此這篇關(guān)于SpringBoot整合Javamail實(shí)現(xiàn)郵件發(fā)送功能的文章就介紹到這了,更多相關(guān)SpringBoot整合Javamail郵件發(fā)送內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot使用OpenCV示例總結(jié)

    SpringBoot使用OpenCV示例總結(jié)

    這篇文章主要介紹了SpringBoot使用OpenCV示例總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • spring依賴注入成功但在調(diào)用接口的時(shí)候拿到的依賴卻是null問題

    spring依賴注入成功但在調(diào)用接口的時(shí)候拿到的依賴卻是null問題

    這篇文章主要介紹了spring依賴注入成功但在調(diào)用接口的時(shí)候拿到的依賴卻是null問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Spring事務(wù)失效問題分析及解決方案

    Spring事務(wù)失效問題分析及解決方案

    這篇文章主要介紹了Spring事務(wù)失效問題分析及解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • 利用Redis實(shí)現(xiàn)延時(shí)處理的方法實(shí)例

    利用Redis實(shí)現(xiàn)延時(shí)處理的方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于利用Redis實(shí)現(xiàn)延時(shí)處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用Redis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • idea導(dǎo)入項(xiàng)目不顯示maven側(cè)邊欄的問題及解決方法

    idea導(dǎo)入項(xiàng)目不顯示maven側(cè)邊欄的問題及解決方法

    這篇文章主要介紹了idea導(dǎo)入項(xiàng)目不顯示maven側(cè)邊欄的問題及解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 詳解Spring/Spring boot異步任務(wù)編程WebAsyncTask

    詳解Spring/Spring boot異步任務(wù)編程WebAsyncTask

    這篇文章主要介紹了詳解Spring/Spring boot異步任務(wù)編程WebAsyncTask,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • Spring Security賬戶與密碼驗(yàn)證實(shí)現(xiàn)過程

    Spring Security賬戶與密碼驗(yàn)證實(shí)現(xiàn)過程

    這篇文章主要介紹了Spring Security賬戶與密碼驗(yàn)證實(shí)現(xiàn)過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-03-03
  • Java實(shí)現(xiàn)隨機(jī)驗(yàn)證碼功能實(shí)例代碼

    Java實(shí)現(xiàn)隨機(jī)驗(yàn)證碼功能實(shí)例代碼

    在這里,我們使用servlet來實(shí)現(xiàn)隨機(jī)驗(yàn)證碼的實(shí)現(xiàn),有需要的朋友可以參考一下
    2013-08-08
  • Java8實(shí)現(xiàn)FTP及SFTP文件上傳下載

    Java8實(shí)現(xiàn)FTP及SFTP文件上傳下載

    這篇文章主要介紹了Java8實(shí)現(xiàn)FTP及SFTP文件上傳下載,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Springboot+WebSocket實(shí)現(xiàn)一對一聊天和公告的示例代碼

    Springboot+WebSocket實(shí)現(xiàn)一對一聊天和公告的示例代碼

    這篇文章主要介紹了Springboot+WebSocket實(shí)現(xiàn)一對一聊天和公告的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評(píng)論