邮件传输协议SMTP和SMTPS
在《使用Spring Boot 優(yōu)雅地發(fā)送郵件》中,我們實現(xiàn)了spring boot集成spring-boot-starter-mail,使用JavaMailSender發(fā)送電子郵件的功能。在配置文件中設(shè)置了端口和郵件傳輸協(xié)議,現(xiàn)在思考一個問題——它們是什么呢?這里就剝繭抽絲般的揭開其神秘面紗。
1. 三種郵件傳輸協(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é)議(Simple Mail Transfer Protocol),用于發(fā)送電子郵件的傳輸協(xié)議;主要用來從郵件客戶端向郵件服務(wù)器發(fā)送郵件,也可以用來在郵件服務(wù)器之間轉(zhuǎn)發(fā)郵件。
- POP3:Post Office Protocol,用于接收電子郵件的標(biāo)準(zhǔn)協(xié)議;
- IMAP:全稱是 Internet Message Access Protocol,互聯(lián)網(wǎng)消息協(xié)議,是POP3的代替協(xié)議;
后兩者用來從郵件服務(wù)器獲取郵件。
這三種協(xié)議都有對應(yīng)SSL加密傳輸?shù)膮f(xié)議,分別是SMTPS,POP3S和IMAPS。下面介紹SMTP和SMTPS協(xié)議。
2. SMTP協(xié)議
SMTP:簡單郵件傳輸協(xié)議,是一個基于文本的協(xié)議。在其上指定了一個消息的一個或多個接收者(收件人和抄送人),然后消息文本會被傳輸。可以使用簡單的telnet程序來測試一個SMTP服務(wù)器。
如今絕大多數(shù)郵件服務(wù)器都使用該協(xié)議。當(dāng)你給別人發(fā)郵件時,你的服務(wù)器的某個動態(tài)端口(大于1024)就會和郵件服務(wù)器的25端口建立一個連接,你發(fā)送的郵件會通過這個連接傳送到郵件服務(wù)器上,保存起來。需要注意的是,現(xiàn)在國內(nèi)外的大云主機(jī)商(例如:阿里云),多數(shù)不允許連接外網(wǎng)的25端口。
3. SMTPS協(xié)議
SMTPS(SMTP-over-SSL)是SMTP協(xié)議基于SSL安全協(xié)議之上的一種變種協(xié)議,它繼承了SSL安全協(xié)議的非對稱加密的高度安全可靠性,可防止郵件泄露。SMTPS和SMTP協(xié)議一樣,也是用來發(fā)送郵件的,只是更安全些,防止郵件被黑客截取泄密,還可實現(xiàn)郵件發(fā)送者抗抵賴功能。防止發(fā)送者發(fā)送之后刪除已發(fā)郵件,拒不承認(rèn)發(fā)送過這樣一份郵件。端口465和587便是基于SMTPS協(xié)議開放的。
465端口(SMTPS):它是SMTPS協(xié)議服務(wù)所使用的其中一個端口,它在郵件的傳輸過程中是加密傳輸(SSL/TLS)的,相比于SMTP協(xié)議攻擊者無法獲得郵件內(nèi)容,郵件在一開始就被保護(hù)了起來。
587端口(SMTPS):它是SMTPS協(xié)議服務(wù)所使用的另一個端口,它在郵件的傳輸過程中是加密傳輸(STARTTLS)的,相比于SMTP協(xié)議攻擊者無法獲得郵件內(nèi)容,郵件在STARTTLS命令執(zhí)行后才被加密。465用于Outlook上,而587可以用于任何程序上。
Reference
https://www.jianshu.com/p/c1763b172013
總結(jié)
以上是生活随笔為你收集整理的邮件传输协议SMTP和SMTPS的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 添能天地宝羊奶粉孩子可以喝吗
- 下一篇: HTTP请求中Content-Type的