學(xué)AI,好工作 就找北大青鳥
關(guān)注小青 聽課做題,輕松學(xué)習(xí)
周一至周日
4000-9696-28

教你三步使用SpringBoot開發(fā)郵件系統(tǒng)!值得收藏!

來源:北大青鳥總部 2020年07月21日 14:33

摘要: 教你三步使用SpringBoot開發(fā)郵件系統(tǒng)!值得收藏!
提到發(fā)送郵件相信大家都不陌生,那么作為一個程序猿,除了日常的工作要使用郵件之外,可能還有一個專屬于程序猿的使用郵件場景-郵件系統(tǒng)開發(fā),我們不僅僅使用郵件,還開發(fā)郵件。
大家應(yīng)該經(jīng)常會有這種經(jīng)歷,當(dāng)我們在一些平臺使用郵箱注冊賬號或者在綁定郵箱的的時候,通常都會有一個郵箱驗證激活的步驟。這個驗證郵箱的步驟,就是在你注冊的時候,平臺會給你的郵箱發(fā)送一封驗證郵件。
今天這篇文章就會手把手帶著同學(xué)們?nèi)绾螌崿F(xiàn)一個自己的郵件發(fā)送系統(tǒng)。以后再也不用擔(dān)心女朋友不接你電話了...
為什么大家都愛使用郵件?
因為便宜?。。?!
因為便宜啊?。。?/span>
因為便宜?。。?!
重要的事情說三遍?。?!

電子郵件的產(chǎn)生

世界上的第一封電子郵件是在1969年10月由計算機科學(xué)家LeonardK.教授發(fā)給他的同事的一條簡短消息。據(jù)說是"LO",意思是:"你好!"。Java在誕生之初就支持郵件發(fā)送,但是比較麻煩,已經(jīng)沒有人在用了;后期Spring框架在Java發(fā)送郵件的基礎(chǔ)之上又進(jìn)行了封裝,才使得郵件的發(fā)送開始變的的簡單,而今天咱么用的都不是以上兩種方式,而是使用·完成郵件發(fā)送;因為使用SpringBoot比以上兩種方式還要簡單。

郵件發(fā)送三步走

在開始實現(xiàn)發(fā)送郵件的功能之前,我們先來說一下發(fā)送郵件的原理,遵循著宋丹丹老師給我們總結(jié)的大象裝冰箱的經(jīng)典三步法,我們的郵件發(fā)送也可以總結(jié)成三個步驟。
第一步:(把冰箱門打開)
發(fā)件人將郵件發(fā)送到郵件發(fā)送服務(wù)器(發(fā)送方的郵件服務(wù)器,如果發(fā)送方是qq郵箱,郵件發(fā)送服務(wù)器就是qq郵箱服務(wù)器;如果發(fā)送方是163郵箱,郵件發(fā)送服務(wù)器就是163郵箱服務(wù)器)
第二步:(把大象裝進(jìn)去)
郵件發(fā)送服務(wù)器會將郵件發(fā)送到郵件接收服務(wù)器(同理,如果收件方是qq郵箱,郵件接收服務(wù)器就是qq郵箱服務(wù)器;如果接收方是163郵箱,郵件接收服務(wù)器就是163郵箱服務(wù)器)
第三步:(把冰箱門蓋上)
郵件接收服務(wù)器會將接收到的郵件發(fā)送給收件人

郵件傳輸協(xié)議

作為一個勤學(xué)好問的程序猿,我們當(dāng)然也要了解下郵件發(fā)送的協(xié)議,這個是關(guān)乎郵件發(fā)送的最根本的內(nèi)容。

在上述郵件發(fā)送的過程中,郵件客戶端和郵件服務(wù)器之間,以及兩個郵件服務(wù)器之間進(jìn)行郵件傳遞,是要遵守一定的規(guī)則,這個規(guī)則就是郵件傳輸協(xié)議。常見的電子郵件協(xié)議SMTP、POP3、IMAP,它們都隸屬于TCP/IP協(xié)議族,默認(rèn)狀態(tài)下,分別通過TCP端口25、110和143建立連接。下面分別對其進(jìn)行簡單介紹。
  • SMTP協(xié)議
  • SMTP的全稱是“Simple Mail Transfer Protocol”,即"簡單郵件傳輸協(xié)議"。它是一組用于從源地址到目的地址傳輸郵件的規(guī)范,通過它來控制郵件的中轉(zhuǎn)方式
  • POP協(xié)議
  • POP全稱是 Post Office Protocol,郵局協(xié)議。它定義了郵件客戶端軟件和POP3郵件服務(wù)器的通信規(guī)則。
  • IMAP
  • IMAP全稱是 Internet Message Access Protocol,Internet消息訪問協(xié)議,它是對POP3協(xié)議的一種擴展,也是定義了郵件客戶端軟件和IMAP郵件服務(wù)器的通信規(guī)則
  • 準(zhǔn)備工作這次的案例咱么使用163郵箱來給qq郵箱發(fā)送郵件,所有要準(zhǔn)備好連個郵箱xxx@163.com、xxx@qq.com,這兩個郵箱一個是發(fā)送方,一個是接受方。
  • 配置郵箱授權(quán)碼

我們在使用應(yīng)用程序發(fā)送郵件的是時候,其實就是想要當(dāng)于是用客戶端發(fā)送郵件,所以我們要在發(fā)送人的郵箱設(shè)置開啟客戶端操作,默認(rèn)是關(guān)閉,這個只需要在發(fā)送方的郵箱了設(shè)置下就可以了。

在這個過程中會提示你發(fā)送短信,按照給短信內(nèi)容使用自己綁定的手機號發(fā)送即可,然后可以自己輸入授權(quán)碼,自己設(shè)置的授權(quán)碼要記住,以后發(fā)送郵件都要用到。


  • 發(fā)送郵件
好了,到這里該準(zhǔn)備的都準(zhǔn)備好了,接下來就開干了。
首先,使用SpringInitializr初始化器,創(chuàng)建最基礎(chǔ)的SpringBoot工程讓后添加發(fā)送郵件的依賴項。

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></dependency>
接下來就要配置郵箱相關(guān)的屬性配置,application.properties中添加郵件相關(guān)配置。

# 163服務(wù)器
spring.mail.host=smtp.163.com
#發(fā)件人郵箱
spring.mail.username=wyliboyu@163.com
#我們自己設(shè)置的授權(quán)密碼
spring.mail.password=ming438434
#默認(rèn)端口是25
spring.mail.port=25
#使用smtp協(xié)議
spring.mail.protocol=smtp
spring.mail.default-encoding=UTF-8
最后就是最簡單的發(fā)送郵的代碼
/**
*發(fā)送簡單郵件
*
*@throws Exception
*/
@Test
publicvoidsendMailTest()throwsException{
     //簡單郵件
     SimpleMailMessage simpleMailMessage = newSimpleMailMessage();
     // 發(fā)件人昵稱
Stringnick = MimeUtility.encodeText("課工場");
     // 發(fā)件人郵箱   simpleMailMessage.setFrom(String.valueOf(newInternetAddress(nick+ "<"+ "wyliboyu@163.com"+ ">")));
     // 收件人
     simpleMailMessage.setTo("459829618@qq.com");
     simpleMailMessage.setSubject("這是一封秘密郵件!?。?quot;);
     //4.設(shè)置郵件內(nèi)容
     simpleMailMessage.setText("");
     mailSender.send(simpleMailMessage);
System.out.println("郵件發(fā)送成功....");
 }
執(zhí)行代碼之后,我們來看下效果。
如下是微信綁定的QQ郵箱,顯示的郵件內(nèi)容。


在網(wǎng)頁打開收到的郵件,會看到如下圖片,說明我們的郵件發(fā)送成功了。

這里有一個小問題,如果你在你的收件箱看不到郵件的話,可以去垃圾郵件箱看看,因為系統(tǒng)很可能是把它當(dāng)作了垃圾郵件。
沒想到這么簡單就搞定了一個了郵件發(fā)送的系統(tǒng),是不是很簡單呢,同時大家也應(yīng)該了解到SpringBoot的強大了吧1


熱門班型時間
人工智能就業(yè)班 即將爆滿
AI應(yīng)用線上班 即將爆滿
UI設(shè)計全能班 即將爆滿
數(shù)據(jù)分析綜合班 即將爆滿
軟件開發(fā)全能班 爆滿開班
網(wǎng)絡(luò)安全運營班 爆滿開班
報名優(yōu)惠
免費試聽
課程資料
官方微信
返回頂部
培訓(xùn)課程 熱門話題 站內(nèi)鏈接