電子郵件相關協議——SMTP,MIME,POP,IMAP


在互聯網發展的早期,電子郵件的發送是基於兩個主機之間直接連接的TCP。但是這必須是雙方都在線的情況下才能行的通。如果接收方不在線,那么發送方會等待一段時間后嘗試重發郵件。這種傳輸機制的可靠性是非常高的,但是其有效性卻非常低下。后來出現了電子郵件服務器,發送方和接收方就不必同時在線。發送方發出的電子郵件在郵件服務器中,郵件服務器會根據郵件DNS的MX來查詢接收方的郵件服務器IP地址,然后將郵件轉發到接收方的郵件服務器。接收方就能從它的服務器上獲取郵件。例如:你使用網易郵箱給QQ郵箱發送了一封郵件,那么他就是按照上面的過程到達QQ郵箱的。

電子郵件需要一個郵件地址。現在互聯網上使用的郵件地址的格式是這樣的:郵箱名稱@域名。例如:bbq@163.com。現在的電子郵件地址也是由DNS來管理的(MX記錄)。

STMP

STMP是發送電子郵件的協議,默認使用25端口。STMP在傳輸層使用TCP協議建立一個連接,在這個連接上進行控制,應答以及數據的發送。客戶端以文本的形式發送請求,服務器端返回一個狀態碼來進行應答。下面使用telnet來發送郵件,以了解其詳細過程。Windows Vista之后的操作系統默認是不開啟telnet的,在win10下,首先需要開啟telnet。在win10的設置中搜索“控制面板”。如下所示:

在控制面板中打開“程序選項”。

 

 然后選擇啟用或關閉Windows功能。

在彈出的窗口中勾選Telnet客戶端,然后點擊確定,等待服務啟用。啟用服務以后,重啟電腦即可使用telnet。

 

重啟電腦以后,打開命令行(CMD)。然后鍵入如下命令:

 

SMTP服務默認端口是25,所以命令如上。

接下來的操作如下:

auth login鍵入之后,就可以登錄你的郵箱了,這里需要base64編碼格式的用戶名以及密碼。這就需要你用一個工具去轉換相應的編碼方式。我沒有轉換工具,也懶得弄了。在線工具又怕那些網站盜取你郵箱密碼。有興趣的可以自己接着向下搞搞。

隨着電子郵件的發展,鋪天蓋地的廣告隨之而來。SMTP本身沒法驗證發送者,不像QQ一樣,需要加好友才能發消息。電子郵件不一樣,只要有一個郵箱地址,你就能給這個郵箱發郵件。比如網易郵箱,網易自己的廣告都是滿天飛的。

上面所說的SMTP服務只能傳輸文本文件,后來MIME的出現使的電子郵件的內容也大大的豐富了。

MIME

MIME規定了應用消息的格式,MIME基本由兩部分組成,首部不能是空行,一旦出現空行,之后的內容就會被自動認定為正文。在MIME首部中的“Content-Type”中指出了傳輸信息的格式。

POP

POP協議是接受電子郵件的協議。如前所述,隨着電子郵件的發展,出現了郵件服務器。因此,接受郵件也就需要一定的協議。接受端能從POP服務器上獲取電子郵件。POP與SMTP一樣,也是通過客戶端和服務器之間建立一個TCP連接來完成相應的操作。POP的命令也是以ASCII方式。它的應答更為簡單,只有 “+OK”和“-ERR”。

也可以使用telnet來登錄POP服務器獲取剛才上面所發送的電子郵件。登錄POP服務器的命令如下:

POP服務器默認的端口是110。其余過程不在展示。哦,這個不需要使用base64編碼。可以試試。

IMAP

IMAP相比於POP,他是在服務器端管理郵件的,而POP是在客戶端管理郵件的。並且正是由於IMAP的出現,人們才可以在各種各樣的機器上登錄郵箱,使用郵箱。例如,當你在網易郵箱大師上登錄你的QQ郵箱的時候,就需要開啟IMAP服務。IMAP給我們使用電子郵件帶來了巨大的便利。

IMAP由於可以在服務器端管理郵件,因此他能給用戶提供更好的體驗。例如,已讀郵件和未讀郵件對於用戶來說,無論是在哪一個終端上登錄郵箱,他看的信息是同步的。並且還可以單獨下載郵件中的某一個附件。例如,一封郵件有5個附件,你可以選擇其中的某一個附件進行下載,而不是下載所有附件。這在大文件,低帶寬的時候是很有效果的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM