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

SpringBoot整合Javamail實現(xiàn)郵件發(fā)送的詳細過程

 更新時間:2022年10月31日 11:08:16   作者:踏風(fēng)彡  
日常開發(fā)過程中,我們經(jīng)常需要使用到郵件發(fā)送任務(wù),比方說驗證碼的發(fā)送、日常信息的通知等,下面這篇文章主要給大家介紹了關(guān)于SpringBoot整合Javamail實現(xiàn)郵件發(fā)送的詳細過程,需要的朋友可以參考下

序言

? 發(fā)郵件對于咱們的Java來說是一個基本的功能,因此這里SpringBoot整合Javamail實際就是簡化了javamail發(fā)郵件的過程。咱們先看三個基本概念,就是Javamail發(fā)送郵件所需要遵從的協(xié)議:

  • SMTP(Simple Mail Transfer Protocol):簡單郵件傳輸協(xié)議,用于發(fā)送電子郵件的傳輸協(xié)議
  • POP3(Post Office Protocol - Version 3):用于接收電子郵件的標準協(xié)議
  • IMAP(Internet Mail Access Protocol):互聯(lián)網(wǎng)消息協(xié)議,是POP3的替代協(xié)議

? 簡而言之,SMTP就是發(fā)郵件必須遵從的標準,POP3就是接受郵件要遵從的標準,而IMAP則是對POP3協(xié)議的升級。日常使用中,我們主要使用的是發(fā)郵件操作,那么接下來,咱們接跟著風(fēng)哥一起來看看SpringBoot整合Javamail發(fā)送郵件的步驟吧~。

簡單郵件

1.老生常談第一步,導(dǎo)入Javamail的Maven坐標。

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

2.配置郵箱的登錄信息

配置文件

javamail使用的郵件發(fā)送功能說到底還是由相應(yīng)的供應(yīng)商提供,所以要配置相應(yīng)郵件供應(yīng)商的信息。

host:配置發(fā)送郵件的主機協(xié)議

username:相應(yīng)供應(yīng)商的郵箱賬號

password:由郵箱供應(yīng)商提供的一個加密后的密碼,接下來咱們來看獲取步驟,此處以qq郵箱為例。

打開qq郵箱,進入設(shè)置,找到這個選項,點生成授權(quán)碼,進行安全驗證后,即可獲得授權(quán)碼

spring:
  mail:
    host: smtp.qq.com
    username: test@qq.com
    password: test    

創(chuàng)建發(fā)送文件的接口類和方法實現(xiàn)類

public interface SendMailService {
    void SendMail() throws MessagingException;
}

把實現(xiàn)類交給Spring容器管理,目的是為了方便在測試方法里自動注入使用。

@Service
public class SendMailServiceImpl implements SendMailService {
    @Autowired
    private JavaMailSender javaMailSender;
    private String from = "test@qq.com";
    private String to = "test@qq.com";
    private String title = "test";
    private  String text = "hahahaha";
    @Override
    public void SendMail() {

        //創(chuàng)建SimpleMailMessage對象,用于郵件發(fā)送
        SimpleMailMessage mailMessage = new SimpleMailMessage();

        mailMessage.setFrom(from);
        mailMessage.setTo(to);
        mailMessage.setSubject(title);
        mailMessage.setText(text);

        javaMailSender.send(mailMessage);

    }
}

在測試類方法里進行測試

@SpringBootTest
class YsjApplicationTests {

    @Autowired
    private SendMailService2 sendMailService2;

    @Test
    void contextLoads() {
        for(int i=0; i<10; i++)
        sendMailService2.SendMail();

    }
}

總結(jié):

  • 注意看郵箱授權(quán)碼怎么生成的
  • 千萬不要連續(xù)多發(fā)相同內(nèi)容的無意義文件,否則會被判定為垃圾郵件
  • 簡單郵件使用SimpleMailMessage類對象進行郵件發(fā)送即可
  • 郵件發(fā)送使用JavaMailSender對象

多組件郵件(帶附件,圖片,超鏈接的郵件)

? 正常生活中,我們肯定不止步使用簡單的標題,正文這些只包含枯燥的文字的郵件,更多的是喜歡使用帶有圖片、視頻、尤其是交作業(yè)給老師使用的附件功能,所以呢,在經(jīng)過上面的基礎(chǔ)學(xué)習(xí)后,接下來,朋友們跟著踏風(fēng)一起來學(xué)習(xí)一下怎么實現(xiàn)用SpringBoot整合Javamail實現(xiàn)發(fā)送咱們更多使用的多組件郵件,Let‘s go.

? 為了防止有的小伙伴在處理過程中出現(xiàn)差錯,咱們這里還從最開始導(dǎo)坐標一步一步來。

發(fā)送帶超鏈接的郵件

1、導(dǎo)入Javamail的Maven坐標。

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

2、配置配置文件,獲取郵箱授權(quán)碼的步驟請參考上邊。

spring:
  mail:
    host: smtp.qq.com
    username: test@qq.com
    password: test

3、創(chuàng)建發(fā)送郵件的方法所在的接口,及接口的實現(xiàn)類。

public interface SendMailService2 {
    void SendMail();
}
  • 發(fā)送帶網(wǎng)頁鏈接的郵件要先使用JavaMailSender類的createMimeMessage()方法創(chuàng)建一個MinmeMessage類對象
  • 創(chuàng)建MImeMessageHelper對象用于發(fā)送帶超鏈接的郵件
  • helper.setText(text,true):true表示支持解析html格式
  • helper.setFrom(from+“(踏風(fēng)彡)”) :后邊的+“()”左右時把發(fā)送者的備注改為括號里邊的內(nèi)容
@Service
public class SendMailServiceImpl2 implements SendMailService2 {

    @Autowired
    private JavaMailSender javaMailSender;

    private String from = "test@qq.com";

    private String to = "test@qq.com";

    private String title = "test";

    private  String text = "<a ;

    @Override
    public void SendMail(){

        try {

            //發(fā)送帶超鏈接的郵件需要創(chuàng)建MimeMessage對象
            MimeMessage message = javaMailSender.createMimeMessage();
            
            MimeMessageHelper helper = new MimeMessageHelper(message);

            helper.setTo(to);
            helper.setFrom(from+"(踏風(fēng)彡)");
            helper.setText(text,true);  
            helper.setSubject(title);

            javaMailSender.send(message);

        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

在測試類測試

@SpringBootTest
class YsjApplicationTests {

    @Autowired
    private SendMailService2 sendMailService2;

    @Test
    void contextLoads() {

        sendMailService2.SendMail();

    }
}

發(fā)送帶圖片的郵件

? 前面幾步都同于發(fā)送帶超鏈接郵件的步驟,接下來咱們主要看怎么使用MimeMessageHelper類對象進行帶附件郵件的發(fā)送,所以咱們主要看實現(xiàn)類方法就行了

? 下面,首先,咱們先做一件有意思的事情,咱們發(fā)送帶附件的郵件同樣是使用MimeMessageHelper對象,那是不是可以有一個大膽的想法,咱們直接創(chuàng)建文件并使用它進行發(fā)送,comn,來試一下。

? 下面的方法我已經(jīng)幫大家創(chuàng)建好了,大家可直接復(fù)制粘貼食用。

@Service
public class SendMailServiceImpl2 implements SendMailService2 {

    @Autowired
    private JavaMailSender javaMailSender;

    private String from = "test@qq.com";

    private String to = "test@qq.com";

    private String title = "踏風(fēng)彡";

    private  String text = "<a ;

    @Override
    public void SendMail(){

        try {

            //發(fā)送帶附件的郵件需要創(chuàng)建MimeMessage對象
            MimeMessage message = javaMailSender.createMimeMessage();
            //這個true表示要發(fā)送的郵件支持附件
            MimeMessageHelper helper = new MimeMessageHelper(message);

            helper.setTo(to);
            helper.setFrom(from+"(踏風(fēng)彡)");
            helper.setText(text,true);  //設(shè)置正文支持html格式
            helper.setSubject(title);

           // File file = new File("G:\\Javamail.zip");
            File file1 = new File("C:\\Users\\10116\\Desktop\\1.jpg");

          //  helper.addAttachment(file.getName(),file);  //添加附件
            helper.addAttachment("皮卡丘丫~.jpg",file1);

            javaMailSender.send(message);

        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

看到這的小伙伴,看來都遇見了如下的報錯。

? 這是因為什么呢?這是因為咱們沒有開啟附件發(fā)送的功能啊,小伙伴們,那么,接下來,讓咱們看看怎么開啟吧。

? 很簡單,如下,這個true即表示開啟附件發(fā)送功能。

? 接下來,已經(jīng)有思路的小伙伴,建議改完后,自己去實踐一下,如果出錯,可以再到文章底部看我的代碼。

總結(jié)

  • 發(fā)送帶附件的郵件跟發(fā)送帶超鏈接的圖片只有一步之差,開啟附件發(fā)送功能即可。
  • 若是要支持html語法,可以在setText的方法參數(shù)上加上true,表示開啟了MimeMessageHelper類的html語法解析功能。
  • 記得把代碼中的test改成相應(yīng)的賬號,郵箱動態(tài)碼。

文末代碼

@Service
public class SendMailServiceImpl2 implements SendMailService2 {

    @Autowired
    private JavaMailSender javaMailSender;

    private String from = "test@qq.com";

    private String to = "test@qq.com";

    private String title = "快看啊叼人";

    private  String text = "<a ;

    @Override
    public void SendMail(){

        try {

            //發(fā)送帶附件的郵件需要創(chuàng)建MimeMessage對象
            MimeMessage message = javaMailSender.createMimeMessage();
            //這個true表示要發(fā)送的郵件支持附件
            MimeMessageHelper helper = new MimeMessageHelper(message, true);

            helper.setTo(to);
            helper.setFrom(from+"(踏風(fēng)彡)");
            helper.setText(text,true);  //設(shè)置正文支持html格式
            helper.setSubject(title);

           // File file = new File("G:\\Javamail.zip");
            File file1 = new File("C:\\Users\\10116\\Desktop\\1.jpg");

          //  helper.addAttachment(file.getName(),file);  //添加附件
            helper.addAttachment("皮卡丘丫~.jpg",file1);

            javaMailSender.send(message);

        } catch (MessagingException e) {
            e.printStackTrace();
        }


    }
}
il.zip");
            File file1 = new File("C:\\Users\\10116\\Desktop\\1.jpg");

          //  helper.addAttachment(file.getName(),file);  //添加附件
            helper.addAttachment("皮卡丘丫~.jpg",file1);

            javaMailSender.send(message);

        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

到這里,SpringBoot整合Javamail實現(xiàn)郵件發(fā)送的流程風(fēng)哥已經(jīng)帶大家做完了,大家覺得不錯的,辛苦給博主個三連+關(guān)注,您的支持就是我創(chuàng)作的動力。

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

相關(guān)文章

  • Dubbo服務(wù)校驗參數(shù)的解決方案

    Dubbo服務(wù)校驗參數(shù)的解決方案

    這篇文章主要介紹了Dubbo服務(wù)如何優(yōu)雅的校驗參數(shù),Dubbo框架本身是支持參數(shù)校驗的,同時也是基于JSR303去實現(xiàn)的,今天通過示例代碼介紹下詳細實現(xiàn)過程,需要的朋友可以參考下
    2022-03-03
  • redis setIfAbsent和setnx的區(qū)別與使用說明

    redis setIfAbsent和setnx的區(qū)別與使用說明

    這篇文章主要介紹了redis setIfAbsent和setnx的區(qū)別與使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • SpringBoot中自定義注解實現(xiàn)控制器訪問次數(shù)限制實例

    SpringBoot中自定義注解實現(xiàn)控制器訪問次數(shù)限制實例

    本篇文章主要介紹了SpringBoot中自定義注解實現(xiàn)控制器訪問次數(shù)限制實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-04-04
  • 小議Java的源文件的聲明規(guī)則以及編程風(fēng)格

    小議Java的源文件的聲明規(guī)則以及編程風(fēng)格

    這篇文章主要介紹了小議Java的源文件的聲明規(guī)則以及編程風(fēng)格,僅給Java初學(xué)者作一個簡單的示范,需要的朋友可以參考下
    2015-09-09
  • Java9中操作和查詢本地進程信息的示例詳解

    Java9中操作和查詢本地進程信息的示例詳解

    這篇文章主要為大家詳細介紹了Java9中操作和查詢本地進程信息的相關(guān)知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • ByteArrayInputStream簡介和使用_動力節(jié)點Java學(xué)院整理

    ByteArrayInputStream簡介和使用_動力節(jié)點Java學(xué)院整理

    ByteArrayInputStream 是字節(jié)數(shù)組輸入流。它繼承于InputStream。這篇文章主要介紹了ByteArrayInputStream簡介和使用_動力節(jié)點Java學(xué)院整理,需要的朋友可以參考下
    2017-05-05
  • Java monitor機制使用方法解析

    Java monitor機制使用方法解析

    這篇文章主要介紹了Java monitor機制使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • 深度優(yōu)先與廣度優(yōu)先Java實現(xiàn)代碼示例

    深度優(yōu)先與廣度優(yōu)先Java實現(xiàn)代碼示例

    這篇文章主要介紹了深度優(yōu)先與廣度優(yōu)先Java實現(xiàn)代碼示例,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • 詳解jvm雙親委派機制

    詳解jvm雙親委派機制

    雙親委派機制保證了核心類的安全,確保不會被修改,也保證了不會加載到重復(fù)的字節(jié)碼文件,這篇文章主要介紹了jvm雙親委派機制詳解,需要的朋友可以參考下
    2022-11-11
  • Java中的OpenJDK使用原理

    Java中的OpenJDK使用原理

    這篇文章主要介紹了Java中的OpenJDK使用原理,OpenJDK是Java的開發(fā)工具包,關(guān)于Java為什么要使用它文章作簡單介紹,感興趣的朋友可以參考一下
    2022-06-06

最新評論