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

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

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

1. 前言

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

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

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

1.2 電子郵件原理

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

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

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

用戶(hù)標(biāo)識(shí)符+@+域名

其中:@是“at”的符號(hào),表示“在”的意思。

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

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

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

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

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

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

(1)準(zhǔn)備帳號(hào)

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

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

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依賴(lài)spring-boot-starter-mail模塊:

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

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

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

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

3. 碼農(nóng)來(lái)洞見(jiàn)

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

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

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

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

相關(guān)文章

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

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

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

    Java實(shí)現(xiàn)自定義阻塞隊(duì)列

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

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

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

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

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

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

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

    Java多個(gè)版本切換的幾種方法

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

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

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

    在Java中避免NullPointerException的解決方案

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

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

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

    詳解shiro緩存機(jī)制

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

最新評(píng)論

阿拉善右旗| 吴忠市| 湟中县| 电白县| 鱼台县| 遂川县| 中山市| 双柏县| 密云县| 山阳县| 沙河市| 宁武县| 洛阳市| 壤塘县| 花莲市| 新巴尔虎左旗| 闸北区| 确山县| 河源市| 曲水县| 太原市| 资兴市| 金寨县| 大同县| 富宁县| 曲水县| 乐平市| 西乌珠穆沁旗| 铅山县| 故城县| 温宿县| 越西县| 宁陵县| 天台县| 青铜峡市| 分宜县| 乌拉特后旗| 兴化市| 翁牛特旗| 绵阳市| 会昌县|