釣魚系列-電子郵件系統(tǒng)之SMTP、IMAP協(xié)議介紹
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
釣 魚 SMTP協(xié)議介紹 SMTP(Simple Mail Transfer Protocol)即簡(jiǎn)單郵件傳輸協(xié)議,郵件通過(guò)這個(gè)協(xié)議在MUA和MTA、MTA和MTA之間傳輸。有了第一篇的基礎(chǔ),相信大家也都了解到了,整個(gè)互聯(lián)網(wǎng)郵箱體系能夠正常運(yùn)行的核心就是SMTP協(xié)議,這個(gè)協(xié)議好比郵箱界的 HTTP。有了 SMTP ,大家都遵守同一套的傳輸規(guī)范, 它保證了你發(fā)出去的郵件對(duì)方的MTA能收到,也保證了對(duì)方MTA發(fā)過(guò)來(lái)的郵件你可以收到。要保持你的郵箱系統(tǒng)能夠正常運(yùn)作,甚至 POP3/IMAP 協(xié)議都不是必須的,如果你不需要通過(guò)客戶端收郵件的話,那么你其實(shí)可以通過(guò)登錄郵件服務(wù)器主機(jī)直接使用mail/mailx 或者mutt 這樣的命令行工具就可以進(jìn)行郵件的收發(fā)。我們現(xiàn)在最常用的webmail,如網(wǎng)易、gmail的網(wǎng)頁(yè)郵箱其實(shí)也沒(méi)有用到 POP3/IMAP協(xié)議(除非你需要配置客戶端)。 SMTP也是基于TCP協(xié)議的 釣 魚 下面是命令和應(yīng)答清單 ![]() 釣 魚 郵件的報(bào)文格式封裝 ![]() (這里要注意的是報(bào)文的信封部分是不會(huì)體現(xiàn)在郵件內(nèi)容里面的。smtp協(xié)議是能夠直接通過(guò)telnet工具執(zhí)行命令的) 使用SMTP服務(wù)器收郵件 我們這里假設(shè)有一個(gè)郵件服務(wù)商叫做 abc.mail(僅用于演示,非真實(shí),下同),其他郵箱基本也都差不太多。首先通過(guò)nslookup命令找到mx記錄,查詢 abcmail用于收件的smtp服務(wù)器地址(一般叫Mail Exchanger,MX)
我們選擇 mx1.abc.mail 這個(gè)服務(wù)器,直接telnet它的25端口,相關(guān)輸入的命令我寫在了后面的注釋里,實(shí)際執(zhí)行時(shí)要去掉:
郵件被拒絕發(fā)送,原因是發(fā)件方MTA的ip地址未經(jīng)授權(quán)。一般來(lái)說(shuō),MX服務(wù)器默認(rèn)對(duì)方也是MTA,需要進(jìn)行各種安全認(rèn)證,我們是通過(guò)個(gè)人電腦連接上去,自然是通不過(guò)認(rèn)證了。目前各大郵箱的發(fā)送方身份認(rèn)證策略都設(shè)置的比較完善了,隨便設(shè)置發(fā)件人郵箱方法行不通。 使用SMTP服務(wù)器發(fā)郵件 abc.mail 發(fā)送郵件的服務(wù)器為 smtp.abc.mail ,我們先來(lái)測(cè)試一下25端口:
可以看到發(fā)件人需要進(jìn)行認(rèn)證,而認(rèn)證必須在tls連接中進(jìn)行,從而有效保護(hù)傳輸?shù)男畔踩elnet是不支持tls連接的,這里使用openssl工具來(lái)進(jìn)行安全連接:
587端口是smtp 的 starttls的端口(也可以使用25端口),可以看到建立tls連接后出現(xiàn)了auth命令。這里要注意的是,主流的各大郵箱已經(jīng)禁用在非安全設(shè)備上直接使用用戶名密碼的登錄方式,直接登錄會(huì)失敗。需要先在郵箱控制面板中生成應(yīng)用專用密碼,再進(jìn)行登錄。上述操作后,郵件發(fā)送成功,在163郵箱可以收到這封郵件了。 或者也可以使用下面這個(gè)命令通過(guò)465端口建立tls連接,效果是一樣的:
IMAP協(xié)議介紹 IMAP協(xié)議, Internet Mail Access Protocal (交互式郵件訪問(wèn)協(xié)議),是一個(gè)應(yīng)用層協(xié)議(端口是143)。IMAP協(xié)議比POP3協(xié)議復(fù)雜的多,也是按照C/S的工作方式,現(xiàn)在較新的版本是IMAP4。 與POP3協(xié)議類似,IMAP也是提供面向用戶的郵件收取服務(wù)。常用的版本是IMAP4。IMAP4改進(jìn)了POP3的不足,用戶可以通過(guò)瀏覽信件頭來(lái)決定是否收取、刪除和檢索郵件的特定部分,還可以在服務(wù)器上創(chuàng)建或更改文件夾或郵箱,它除了支持POP3協(xié)議的脫機(jī)操作模式 外,還支持聯(lián)機(jī)操作和斷連接操作。它為用戶提供了有選擇的從郵件服務(wù)器接收郵件的功能、基于服務(wù)器的信息處理功能和共享信箱功能。IMAP4的脫機(jī)模式不同于POP3,它不會(huì)自動(dòng)刪除在郵件服務(wù)器上已取出的郵件,其聯(lián)機(jī)模式和斷連接模式也是將郵件服務(wù)器作為“遠(yuǎn)程文件服務(wù)器”進(jìn)行訪問(wèn),更加靈活方便。目前只使用POP3協(xié)議的郵箱已經(jīng)很少了,主流是IMAP,故本文章以介紹IMAP協(xié)議為主。 imap同樣也是直接可以用命令行登錄的,下面我們來(lái)測(cè)試一下,因?yàn)槟壳爸髁鬣]件服務(wù)商都已經(jīng)禁用了非安全的143端口,我們直接通過(guò) tls 端口 993 來(lái)登錄,需要輸入的命令行后面添加了注釋:
上述命令使用用戶名+專用密碼登錄,列出郵箱列表,并選擇了inbox郵件箱。imap 命令比較多,詳細(xì)命令可參考附件列表里的資料。 關(guān)于端口號(hào) 由于電子郵件存在的歷史非常長(zhǎng),使用的端口號(hào)也經(jīng)歷了不少階段,導(dǎo)致看起來(lái)有些混亂。最早大家都是明文傳輸,smtp使用25,imap使用143,還比較清楚。后來(lái)隨著互聯(lián)網(wǎng)的發(fā)展,大家意識(shí)到不能在網(wǎng)上裸奔了,加密很重要,于是誕生了smtps(465),imaps(993),這兩個(gè)端口使用的是ssl協(xié)議。再后來(lái)ssl協(xié)議也被淘汰了,取而代之的是tls協(xié)議,配套開(kāi)發(fā)了starttls協(xié)議,可以復(fù)用原來(lái)的明文端口,即可以先連接smtp的25端口,根據(jù)服務(wù)端是否支持starttls,再判斷是否啟用加密連接,相對(duì)更加靈活。同時(shí),由于25端口被客戶端廣泛用于發(fā)送垃圾郵件,所以客戶端(MUA)的starttls端口被定義成了587端口。再后來(lái),大家又覺(jué)得其實(shí)端口不是重點(diǎn),tls加密才是最重要的,所以現(xiàn)在的465和993都是同時(shí)支持ssl/tls的(ssl基本已不再使用),不管使用starttls還是普通tls,加密級(jí)別和安全性都是一樣的。 ![]() SMTP服務(wù)器分類 · 發(fā)件服務(wù)器:這個(gè)就是我們通常意義上了解的smtp服務(wù)器,域名形式通常為 smtp.域名,如smtp.163.com,smtp.gmail.com等,普通用戶接觸最多的是這類服務(wù)器,郵件客戶端里面配的一般也是這個(gè)地址。作用是接收郵件客戶端發(fā)送過(guò)來(lái)的郵件,并轉(zhuǎn)發(fā)到其他的郵件服務(wù)器中。早期使用的是25端口,近年來(lái)隨著安全傳輸要求的不斷提升,一般25端口已被禁用,以使用465(SSL/TLS)及587(STARTTLS)端口為主。為防止垃圾郵件的發(fā)送,通常都會(huì)做發(fā)件人的身份驗(yàn)證,認(rèn)證通過(guò)后 smtp 服務(wù)器才會(huì)允許以該發(fā)件人身份向其他郵件服務(wù)器發(fā)送郵件。 · 收件服務(wù)器:一般叫 Mail Exchanger,MX服務(wù)器,地址可通過(guò)查詢 dns 的mx記錄獲取。一般只是在郵件服務(wù)商之間傳輸郵件時(shí)用到,普通用戶接觸不多。MX服務(wù)器通常只開(kāi)通25端口,上面既可以跑明文流量,也可以跑加密流量(通過(guò)starttls命令聲明進(jìn)行加密傳輸)。MX服務(wù)器一般會(huì)校驗(yàn),收件人地址是本地用戶,才會(huì)接收。同時(shí),由于是MTA之間的傳輸,MX一般也會(huì)對(duì)發(fā)送方的MTA進(jìn)行嚴(yán)格校驗(yàn)(還記得文章開(kāi)頭收郵件失敗嗎?),具體方式有SPF、DKIM、DMARC、rDNS等,后續(xù)在講郵件身份認(rèn)證時(shí)會(huì)講到。 一般來(lái)說(shuō),出于職責(zé)權(quán)限劃分及處理性能的考慮,大的郵件服務(wù)商都會(huì)把收件服務(wù)器和發(fā)件服務(wù)器分開(kāi)單獨(dú)部署。自建的小站,用戶也沒(méi)幾個(gè),合并部署問(wèn)題不大。 常見(jiàn)郵件協(xié)議和端口樣例 新浪免費(fèi)郵箱: 新浪COM免費(fèi)郵箱(@sina.com): 收信(pop3)服務(wù)器的地址為:pop.sina.com 端口:110,使用SSL的加密端口:995 (或pop3.sina.com) 發(fā)信(smtp)服務(wù)器的地址為:smtp.sina.com 端口:25, 使用SSL的加密端口:587或465 新浪CN免費(fèi)郵箱(@sina.cn): 收信(pop3)服務(wù)器的地址為:pop.sina.cn 端口:110,使用SSL的加密端口:995 (或pop3.sina.cn) 發(fā)信(smtp)服務(wù)器的地址為:smtp.sina.cn 端口:25, 使用SSL的加密端口:587或465 新浪收費(fèi)郵箱(SinaVIP): POP3服務(wù)器:pop3.vip.sina.com (端口:110),使用SSL的加密端口:995 SMTP服務(wù)器:smtp.vip.sina.com (端口:25),使用SSL的加密端口:587或465 126免費(fèi)郵箱: POP3服務(wù)器地址:pop.126.com(端口:110),使用SSL的加密端口:995 SMTP服務(wù)器地址:smtp.126.com(端口:25),使用SSL的加密端口:994或465 163免費(fèi)郵箱: POP3服務(wù)器地址:pop.163.com(端口:110),使用SSL的加密端口:995 IMAP服務(wù)器地址:imap.163.com(端口:143),使用SSL的加密端口:993 SMTP服務(wù)器地址:smtp.163.com(端口:25),使用SSL的加密端口:994或465 網(wǎng)易免費(fèi)企業(yè)郵箱(免費(fèi)的域名郵箱): SMTP服務(wù)器地址:smtp.ym.163.com 默認(rèn)端口為:25 (如勾選ssl安全鏈接,端口號(hào)為994或465) POP3服務(wù)器地址:pop.ym.163.com 默認(rèn)端口為:110 (如勾選ssl安全鏈接,端口號(hào)為995) IMAP服務(wù)器地址:imap.ym.163.com 默認(rèn)端口為:143 (如勾選ssl安全鏈接,端口號(hào)為993) 網(wǎng)易收費(fèi)企業(yè)郵箱: SMTP服務(wù)器地址:smtp.qiye.163.com 默認(rèn)端口為:25 (如勾選ssl安全鏈接,端口號(hào)為994或465) POP3服務(wù)器地址:pop.ym.163.com 默認(rèn)端口為:110 (如勾選ssl安全鏈接,端口號(hào)為995) IMAP服務(wù)器地址:imap.ym.163.com 默認(rèn)端口為:143 (如勾選ssl安全鏈接,端口號(hào)為993) 中國(guó)移動(dòng)139免費(fèi)郵箱: POP3服務(wù)器地址:POP.139.com(端口:110),使用SSL的加密端口:995 SMTP服務(wù)器地址:SMTP.139.com(端口:25),使用SSL的加密端口:587或465 QQ免費(fèi)郵箱: POP3服務(wù)器地址:pop.qq.com(端口:110),使用SSL的加密端口:995 SMTP服務(wù)器地址:smtp.qq.com(端口:25),使用SSL的加密端口:465 QQ企業(yè)收費(fèi)郵箱: POP3服務(wù)器地址:pop.exmail.qq.com (SSL強(qiáng)制被啟用 端口:995) SMTP服務(wù)器地址:smtp.exmail.qq.com(SSL強(qiáng)制被啟用 端口:465) 海外QQ企業(yè)郵箱用戶 接收郵件服務(wù)器:hwpop.exmail.qq.com ,使用SSL,端口號(hào)995 發(fā)送郵件服務(wù)器:hwsmtp.exmail.qq.com ,使用SSL,端口號(hào)465 微軟office365郵箱: POP3服務(wù)器地址:outlook.office365.com (SSL強(qiáng)制被啟用 端口:995) SMTP服務(wù)器地址:smtp.office365.com(SSL強(qiáng)制被啟用 端口:587) TOM郵箱: POP3服務(wù)器地址:pop.tom.com(端口:110),使用SSL的加密端口:995 SMTP服務(wù)器地址:smtp.tom.com(端口:25),使用SSL的加密端口:587或465 搜狐郵箱: POP3服務(wù)器地址:pop3.sohu.com(端口:110),使用SSL的加密端口:995 SMTP服務(wù)器地址:smtp.sohu.com(端口:25),使用SSL的加密端口:587或465 參考資料 1、SMTP協(xié)議介紹 https://blog.csdn.net/qq_35644234/article/details/68961603 2、測(cè)試imap服務(wù)器命令詳解 https://blog.csdn.net/sinat_37213335/article/details/88291078 3、細(xì)說(shuō)電子郵件的端口號(hào) https://taoshu.in/email-ports.html 4、https://www.jianshu.com/p/1797d82c1afe 該文章在 2024/4/9 23:47:48 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |