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