邮件访问协议
一、郵件訪問協議的類型
郵件訪問協議的作用是從服務器中取出郵件。常用的郵件訪問協議有三類。
(1)POP:授權、下載郵件
(2)IMAP:相比POP,具有更多特性,比如分類管理服務器上的郵件。
(3)HTTP:例如Gmail、Hostmail、QQ郵箱、網易郵箱等都提供了使用HTTP來進行郵件訪問的功能。
二、POP3協議
POP協議使用最多的是第三個版本,所以也叫POP3。包括3個階段。
(1)授權
(2)事務處理
(3)更新
1、授權
授權階段采用客戶端與服務器進行命令響應的交互應答方式來完成相關工作。
客戶端命令主要包括兩個:
(1)user:給出用戶名
(2)pass:給出密碼
服務器響應也主要包括兩個:
(1)OK
(2)ERR
看一個簡單例子:
當連接到server時給出連接響應,服務器等待客戶端給出命令;
客戶端發送user bob命令過去;
S接收到以后C再給出password;
若用戶名和密碼沒有問題,S給出OK回應,OK后的短語可以自行定義。
2、事務處理
當我們獲得授權以后就進入到事務處理階段。
在事務處理階段客戶端主要有以下幾個命令可以使用:
(1)list:列出郵件編號,看一下服務器上有哪些郵件,服務器端給出的應答比較簡單它給出若干個郵件的序號以及郵件的大小。
(2)retr:按編號取郵件
(3)dele:刪除郵件。
(4)quit:
例子如下:
3、POP3協議命令操作示例
最開始的例子是簡單的展示,但在實際中更復雜。主要是返回的內容即顯示的內容比較多,如上圖所示。
紅色箭頭所指的部分都是客戶端輸入的命令。藍色框起來的都是服務器端返回的內容。這些命令在上文講過,這里不在講解。示例中收取的文件內容比較復雜一些,它把郵件的源碼顯示在了操作界面上,郵件的內容與格式也在前面的文章講過。
通過這種方式可以將郵件一封一封收取進來,通過源碼做相關操作即可。
三、POP3與IMAP
之前使用的都是Download-and-delete方式,但是這種方式有一個問題,當換了一個客戶端例如在公司用電腦收取郵件后回家用手機查看郵件時就看不到了,因為這些郵件在服務器上已經被刪掉了。所以很多時候我們采用的是另一種模式叫Download-and-keep模式,這種模式的特點是下載郵件但是不刪掉,當換一個客戶端時還是可以閱讀郵件。這時只要不使用delete命令就可以。
另外POP3的會話是無狀態的即如果中間中斷了就必須要重新操作。
POP3協議比較簡單容易實現,但功能是有限的,所以后來人們開發了其它的郵件接收協議,這些協議可以支持更復雜的功能,其中最常見的就是IMAP,相比POP3而言IMAP有如下特征:
(1)保存所有郵件消息在一個位置:服務器,這時無論在哪個客戶端操作,在其它客戶端都可以看到操作的結果。
(2)允許用戶在服務器的各文件夾中管理郵件消息
(3)IMAP可以維護用戶會話的狀態信息,最典型的例子就是它可以把文件夾和郵件消息的ID關聯起來,即可以把郵件放到不同的文件夾里面,如同在本地操作文件系統的目錄一樣,這樣就非常方便。
注意:在郵箱里面的各種文件夾其實是一個虛擬的,它和我們文件系統的文件夾是有區別的,但是不管怎么樣它方便了用戶的使用。
總結
- 上一篇: 邮件报文格式和MIME
- 下一篇: Python学习:字典