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

SpringBoot實現(xiàn)發(fā)送電子郵件

 更新時間:2022年01月26日 16:12:54   作者:碼農(nóng)洞見  
這篇文章主要介紹了SpringBoot實現(xiàn)發(fā)送電子郵件,電子郵件是—種用電子手段提供信息交換的通信方式,是互聯(lián)網(wǎng)應(yīng)用最廣的服務(wù)。通過網(wǎng)絡(luò)的電子郵件系統(tǒng),用戶可以非??焖俚姆绞?,與世界上任何一個角落的網(wǎng)絡(luò)用戶聯(lián)系,下面就來看看SpringBoot如何實現(xiàn)發(fā)送電子郵件吧

1. 前言

電子郵件是—種用電子手段提供信息交換的通信方式,是互聯(lián)網(wǎng)應(yīng)用最廣的服務(wù)。通過網(wǎng)絡(luò)的電子郵件系統(tǒng),用戶可以非常快速的方式(幾秒鐘之內(nèi)可以發(fā)送到世界上任何指定的目的地),與世界上任何一個角落的網(wǎng)絡(luò)用戶聯(lián)系。從1969年10月世界上的第一封電子郵件發(fā)出,到2021年,已經(jīng)過去將近半個世紀了。雖然即時通訊和視頻會議變得日益普及,但電子郵件依然有著廣泛的使用場景和不可撼動的歷史地位。

1.1 電子郵件發(fā)展史

起源:1969年10月世界上的第一封電子郵件是由計算機科學(xué)家Leonard K.教授發(fā)給他的同事的一條簡短消息。這條消息只有兩個字母:“LO”。Leonard K.教授因此被稱為電子郵件之父。
雖然電子郵件是在70年代發(fā)明的,它卻是在80年才得以興起。到90年代中期,互聯(lián)網(wǎng)瀏覽器誕生,全球網(wǎng)民人數(shù)激增,電子郵件被廣為使用。

1.2 電子郵件原理

電子郵件在Internet上發(fā)送和接收的原理可以很形象地用我們?nèi)粘I钪朽]寄包裹來形容:當我們要寄一個包裹時,我們首先要找到任何一個有這項業(yè)務(wù)的郵局,在填寫完收件人姓名、地址等等之后包裹就寄出而到了收件人所在地的郵局,那么對方取包裹的時候就必須去這個郵局才能取出。同樣的,當我們發(fā)送電子郵件時,這封郵件是由郵件發(fā)送服務(wù)器(任何一個都可以)發(fā)出,并根據(jù)收信人的地址判斷對方的郵件接收服務(wù)器而將這封信發(fā)送到該服務(wù)器上,收信人要收取郵件也只能訪問這個服務(wù)器才能完成。

1.3 電子郵件地址的構(gòu)成

電子郵件地址的格式由三部分組成。第一部分“USER”代表用戶信箱的賬號,對于同一個郵件接收服務(wù)器來說,這個賬號必須是唯一的;第二部分“@”是分隔符;第三部分是用戶信箱的郵件接收服務(wù)器域名,用以標志其所在的位置。

用戶標識符+@+域名

其中:@是“at”的符號,表示“在”的意思。

1.4 電子郵件傳輸協(xié)議

電子郵件需要在郵件客戶端和郵件服務(wù)器之間,以及兩個郵件服務(wù)器之間進行郵件傳遞,那就必須要遵守一定的規(guī)則,這個規(guī)則就是郵件傳輸協(xié)議。

下面我們分別簡單介紹幾種協(xié)議:

SMTP協(xié)議:全稱為Simple Mail Transfer Protocol,簡單郵件傳輸協(xié)議。它定義了郵件客戶端軟件和SMTP郵件服務(wù)器之間,以及兩臺SMTP郵件服務(wù)器之間的通信規(guī)則。
POP3協(xié)議:全稱為Post Office Protocol,郵局協(xié)議。它定義了郵件客戶端軟件和POP3郵件服務(wù)器的通信規(guī)則。
IMAP協(xié)議:全稱為 Internet Message Access Protocol,Internet消息訪問協(xié)議,它是對POP3協(xié)議的一種擴展,也是定義了郵件客戶端軟件和IMAP郵件服務(wù)器的通信規(guī)則。

2. 實現(xiàn)發(fā)送電子郵件

Java在發(fā)明之初,就開始支持發(fā)送郵件,通過java mail包方式去操作郵件發(fā)送的內(nèi)容和協(xié)議,但是,這種發(fā)送方式稍微比較復(fù)雜,需要配置各種參數(shù)、協(xié)議、內(nèi)容,之后產(chǎn)生了Spring框架。Spring在java mail的基礎(chǔ)上進行了一些封裝,使發(fā)送郵件的過程的復(fù)雜大大減少。SpringBoot Mail在Spring Mail的基礎(chǔ)上,再次進行一次封裝,使得發(fā)送郵件的便利度上,更為簡單。下面我們就開始SpringBoot實現(xiàn)發(fā)送郵件的編程之旅吧!

(1)準備帳號

注冊發(fā)件郵箱并設(shè)置客戶端授權(quán)碼,這里以163免費郵箱為例:

(2)構(gòu)建maven工程,添加郵件配置和依賴包

application.yml文件配置參數(shù):

spring:
? mail:
? ?? ?#郵箱配置
? ? host: smtp.163.com
? ? #郵箱地址
? ? username: manoninsight@163.com
? ? #SMTP授權(quán)密碼
? ? password: LEDEYBCUHIIBXLPG
? ? properties:
? ? ? mail:
? ? ? ? smtp:
? ? ? ? ? socketFactory:
? ? ? ? ? ? class: javax.net.ssl.SSLSocketFactory
? ? default-encoding: utf-8

pom.xml依賴spring-boot-starter-mail模塊:

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

(3)代碼實現(xiàn)

@RestController
public class MailController {
? ? @Autowired
? ? JavaMailSenderImpl javaMailSender;
? ? @RequestMapping("/mail")
? ? public String sendMail(){
? ? ? ? SimpleMailMessage message = new SimpleMailMessage();
? ? ? ? //郵件發(fā)送
? ? ? ? message.setFrom("manoninsight@163.com");
? ? ? ? //郵件接收,多個帳號用逗號分割
? ? ? ? message.setTo("pps1208@126.com","420076360@qq.com");
? ? ? ? //郵件主題
? ? ? ? message.setSubject("公眾號:碼農(nóng)洞見");
? ? ? ? //郵件內(nèi)容
? ? ? ? message.setText("你好,我是碼農(nóng)洞見,歡迎大家關(guān)注!");
? ? ? ? javaMailSender.send(message);
? ? ? ? return "郵件發(fā)送demo!";
? ? }
}

(4)測試結(jié)果,收到了電子郵件:

3. 碼農(nóng)來洞見

電子郵件溝通的方式屬于異步通信,與即時軟件有所區(qū)別,即時軟件盛行的當下,仍然有很多人喜歡使用電子郵件,究竟是什么原因呢?歸結(jié)原因如下四點:

  • (1)電子郵件溝通具有儀式感,比如某些重要的活動邀請或者信息通知
  • (2)電子郵件溝通便于協(xié)作,發(fā)送電子郵件可以選擇抄送、密送、群發(fā)等。
  • (3)電子郵件溝通記錄可查詢
  • (4)電子郵件溝通要求內(nèi)容邏輯清晰,電子郵件一般不需要即時答復(fù),讓溝通的雙方有思考的時間

最后,電子郵箱作為互聯(lián)網(wǎng)早期出現(xiàn)的溝通工具,經(jīng)過不斷的迭代更新,與即時通訊工具之間已形成優(yōu)劣互補,成為人們生活工作中必不可少的一部分。

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

相關(guān)文章

  • SpringBoot整合redis實現(xiàn)輸入密碼錯誤限制登錄功能

    SpringBoot整合redis實現(xiàn)輸入密碼錯誤限制登錄功能

    遇到這樣的需求需要實現(xiàn)一個登錄功能,并且2分鐘之內(nèi)只能輸入5次錯誤密碼,若輸入五次之后還沒有輸入正確密碼,系統(tǒng)將會將該賬號鎖定1小時,這篇文章主要介紹了SpringBoot整合redis并實現(xiàn)輸入密碼錯誤限制登錄功能,需要的朋友可以參考下
    2024-02-02
  • Java實現(xiàn)自定義阻塞隊列

    Java實現(xiàn)自定義阻塞隊列

    這篇文章主要介紹了Java如何實現(xiàn)自定義阻塞隊列,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-10-10
  • java中TreeMap集合的常用方法詳解

    java中TreeMap集合的常用方法詳解

    本篇文章給大家?guī)淼膬?nèi)容是關(guān)于java中TreeMap集合的常用方法詳解,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。下面我們就來學(xué)習(xí)一下吧
    2021-11-11
  • java實現(xiàn)的連接oracle/mysql數(shù)據(jù)庫功能簡單示例【附oracle+mysql數(shù)據(jù)庫驅(qū)動包】

    java實現(xiàn)的連接oracle/mysql數(shù)據(jù)庫功能簡單示例【附oracle+mysql數(shù)據(jù)庫驅(qū)動包】

    這篇文章主要介紹了java實現(xiàn)的連接oracle/mysql數(shù)據(jù)庫功能,結(jié)合實例形式分析了java基于jdbc連接Oracle與mysql的相關(guān)操作技巧,并附帶完整實例代碼與oracle+mysql數(shù)據(jù)庫驅(qū)動包供讀者下載參考,需要的朋友可以參考下
    2017-10-10
  • Spring Cloud Alibaba之Sentinel實現(xiàn)熔斷限流功能

    Spring Cloud Alibaba之Sentinel實現(xiàn)熔斷限流功能

    這篇文章主要介紹了Spring Cloud Alibaba之Sentinel,這里使用阿里的sentinel來實現(xiàn)熔斷限流功能,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Java多個版本切換的幾種方法

    Java多個版本切換的幾種方法

    本文主要介紹了Java多個版本切換的幾種方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Java中的八種基本數(shù)據(jù)類型詳解

    Java中的八種基本數(shù)據(jù)類型詳解

    本文詳細講解了Java中的八種基本數(shù)據(jù)類型,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • 在Java中避免NullPointerException的解決方案

    在Java中避免NullPointerException的解決方案

    這篇文章主要介紹了在Java中避免NullPointerException的解決方案,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Java?根據(jù)XPATH批量替換XML節(jié)點中的值

    Java?根據(jù)XPATH批量替換XML節(jié)點中的值

    這篇文章主要介紹了Java根據(jù)XPATH批量替換XML節(jié)點中的值,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • 詳解shiro緩存機制

    詳解shiro緩存機制

    Shiro提供了類似于Spring的Cache抽象,即Shiro本身不實現(xiàn)Cache,但是對Cache進行了又抽象,方便更換不同的底層Cache實現(xiàn)。下面通過實例代碼給大家分享shiro緩存機制,感興趣的朋友一起看看吧
    2017-09-09

最新評論

易门县| 罗江县| 时尚| 高阳县| 梁平县| 开化县| 斗六市| 邵武市| 隆安县| 平乡县| 腾冲县| 仙游县| 宁河县| 台州市| 观塘区| 郧西县| 怀仁县| 吴桥县| 田东县| 调兵山市| 若羌县| 基隆市| 黄梅县| 繁峙县| 赤峰市| 铅山县| 辽源市| 保靖县| 拜城县| 施秉县| 呼伦贝尔市| 黄平县| 马山县| 永泰县| 玉林市| 鲁甸县| 巴马| 贺州市| 孙吴县| 调兵山市| 西乡县|