IMAP4
IMAP4,即交互式數(shù)據(jù)消息訪問協(xié)議第四個(gè)版本,IMAP協(xié)議是由斯坦福大學(xué)的Mark Crispin教授在1986年開發(fā)的,后期版本是華盛頓州立大學(xué)進(jìn)行開發(fā)的,IMAP4是TCP/IP協(xié)議族中的一員,IMAP4協(xié)議與POP3協(xié)議一樣也是規(guī)定個(gè)人計(jì)算機(jī)如何訪問互聯(lián)網(wǎng)上的郵件服務(wù)器進(jìn)行收發(fā)郵件的協(xié)議,但是IMAP4協(xié)議同POP3協(xié)議相比更高級(jí),IMAP4協(xié)議支持客戶機(jī)在線或者離線訪問并閱讀服務(wù)器上的郵件,還能交互式的操作服務(wù)器上的郵件。IMAP4協(xié)議更人性化的地方是不需要像POP3協(xié)議那樣把郵件下載到本地,用戶可以通過客戶端直接對(duì)服務(wù)器上的郵件進(jìn)行操作,用戶可以在服務(wù)器上維護(hù)自己郵件目錄,IMAP4協(xié)議彌補(bǔ)了POP3協(xié)議的很多缺陷,本協(xié)議是用于客戶機(jī)遠(yuǎn)程訪問服務(wù)器上電子郵件,它是郵件傳輸協(xié)議新的標(biāo)準(zhǔn)。
IMAP協(xié)議的特點(diǎn)[ ]
- 與POP3協(xié)議類似IMAP也是提供面向用戶的郵件收取服務(wù),常用的版本是IMAP4,IMAP4改進(jìn)了POP3的不足,用戶可以通過瀏覽信件頭來決定是否收取、刪除和檢索郵件的特定部分,還可以在服務(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)行訪問,更加靈活方便。
IMAP4支持的功能[ ]
- 支持連接和斷開兩種操作模式。當(dāng)使用POP3時(shí),客戶端只會(huì)連接在服務(wù)器上一段的時(shí)間,直到它下載完所有新信息,客戶端即斷開連接。在IMAP中只要用戶界面是活動(dòng)的和下載信息內(nèi)容是需要的,客戶端就會(huì)一直連接在服務(wù)器上。對(duì)于有很多或者很大郵件的用戶來說,使用IMAP4模式可以獲得更快的響應(yīng)時(shí)間。
- 支持多個(gè)客戶同時(shí)連接到一個(gè)郵箱,POP3協(xié)議假定郵箱當(dāng)前的連接是唯一的連接。相反IMAP4協(xié)議允許多個(gè)用戶同時(shí)訪問郵箱同時(shí)提供一種機(jī)制讓客戶能夠感知其他當(dāng)前連接到這個(gè)郵箱的用戶所做的操作。
- 支持訪問消息中的MIME部分和部分獲取。幾乎所有的Internet郵件都是以MIME格式傳輸?shù)摹IME允許消息包含一個(gè)樹型結(jié)構(gòu),這個(gè)樹型結(jié)構(gòu)的葉子節(jié)點(diǎn)都是單一內(nèi)容類型而非葉子節(jié)點(diǎn)都是多塊類型的組合。IMAP4協(xié)議允許客戶端獲取任何獨(dú)立的MIME部分和獲取信息的一部分或者全部,這些機(jī)制使得用戶無需下載附件就可以瀏覽消息內(nèi)容或者在獲取內(nèi)容的同時(shí)瀏覽。
- 支持在服務(wù)器保留消息狀態(tài)信息。通過使用在IMAP4協(xié)議中定義的標(biāo)志客戶端可以跟蹤消息狀態(tài),例如郵件是否被讀取,回復(fù),或者刪除。這些標(biāo)識(shí)存儲(chǔ)在服務(wù)器,所以多個(gè)客戶在不同時(shí)間訪問一個(gè)郵箱可以感知其他用戶所做的操作。
- 支持在服務(wù)器上訪問多個(gè)郵箱,IMAP4客戶端可以在服務(wù)器上創(chuàng)建,重命名,或刪除郵箱(通常以文件夾形式顯現(xiàn)給用戶)。支持多個(gè)郵箱還允許服務(wù)器提供對(duì)于共享和公共文件夾的訪問。
- 支持服務(wù)器端搜索。IMAP4提供了一種機(jī)制給客戶使客戶可以要求服務(wù)器搜索符合多個(gè)標(biāo)準(zhǔn)的信息。在這種機(jī)制下客戶端就無需下載郵箱中所有信息來完成這些搜索。
- 支持一個(gè)定義良好的擴(kuò)展機(jī)制。吸取早期Internet協(xié)議的經(jīng)驗(yàn),IMAP的擴(kuò)展定義了一個(gè)明確的機(jī)制。很多對(duì)于原始協(xié)議的擴(kuò)展已被提議并廣泛使用。無論使用POP3還是IMAP4來獲取消息,客戶端使用SMTP協(xié)議來發(fā)送。郵件客戶可能是POP客戶端或者IMAP客戶端,但都會(huì)使用SMTP
IMAP4協(xié)議的工作原理[ ]
- IMAP4協(xié)議適用于C/S構(gòu)架中,IMAP4協(xié)議對(duì)于提供郵件訪問服務(wù)且使用廣泛的POP3協(xié)議的另一種選擇,基本上兩者都是規(guī)定個(gè)人計(jì)算機(jī)如何連接到互聯(lián)網(wǎng)上的郵件服務(wù)器進(jìn)行收發(fā)郵件。IMAP4協(xié)議支持對(duì)服務(wù)器上的郵件進(jìn)行擴(kuò)展性操作,IMAP4也支持ASCII碼明文傳輸密碼。
- 與POP3不同的是,IMAP4能支持離線和在線兩種模式來傳輸數(shù)據(jù),表現(xiàn)如下:
- 在離線方式中,客戶端程序會(huì)不間斷的連接服務(wù)器下載未閱讀過的郵件到本地磁盤,當(dāng)客戶端需要接受或者發(fā)送郵件時(shí)才會(huì)于服務(wù)器建立連接,這就是離線訪問模式。POP3典型地以離線方式工作。
- 在線模式中,一直都是由客戶端程序來操作服務(wù)器上的郵件,不需要像離線模式那樣把郵件下載到本地才能閱讀,(即使用戶把郵件下載到本地,服務(wù)器上也會(huì)存一份副本,而不會(huì)像POP協(xié)議那樣把郵件刪除)。用戶可以通過客戶端程序或者Web在線瀏覽郵件,一些POP3服務(wù)器也提供了在線功能,但是,它們沒有達(dá)到IMAP4的瀏覽功能的級(jí)別。
- IMAP4是分布式存儲(chǔ)郵件方式,本地磁盤上的郵件狀態(tài)和服務(wù)器上的郵件狀態(tài),可能和以后再連接時(shí)不一樣。此時(shí)IMAP4的分布式存儲(chǔ)機(jī)制解決了這個(gè)問題,IMAP4郵件的客戶端軟件能夠記錄用戶在本地的操作,當(dāng)他們連上網(wǎng)絡(luò)后會(huì)把這些操作傳送給服務(wù)器。當(dāng)用戶離線的時(shí)候服務(wù)器端發(fā)生的事件,服務(wù)器也會(huì)告訴客戶端軟件,比如有新郵件到達(dá)等,以保持服務(wù)器和客戶端的同步。
- IMAP4協(xié)議處理線程都處于4種處理狀態(tài)的其中一種,大部分的IMAP4命令都只會(huì)在某種處理狀態(tài)下才有效。如果IMAP4客戶端軟件企圖在不恰當(dāng)?shù)臓顟B(tài)下發(fā)送命令,則服務(wù)器將返回協(xié)議錯(cuò)誤的失敗信息,如BAD或NO等等。
- 非認(rèn)證狀態(tài),在這個(gè)狀態(tài)下,客戶軟件必須發(fā)出認(rèn)證請(qǐng)求命令。在IMAP4連接建立時(shí),服務(wù)器處理線程自動(dòng)進(jìn)入這個(gè)狀態(tài)。
- 認(rèn)證狀態(tài),在認(rèn)證狀態(tài)下,客戶軟件必須選擇一個(gè)郵箱,這個(gè)狀態(tài)在認(rèn)證請(qǐng)求命令得到確認(rèn)答復(fù)后進(jìn)入,或在預(yù)認(rèn)證連接建立后直接進(jìn)入。
- 已選擇狀態(tài),這個(gè)狀態(tài)表示IMAP4客戶軟件已經(jīng)選擇了某一Folder,在這個(gè)狀態(tài)下可以發(fā)送所有檢索郵件內(nèi)容的命令。
- 離線狀態(tài),在這個(gè)狀態(tài)連接已經(jīng)終止,服務(wù)器將關(guān)閉這個(gè)連接,客戶端軟件可以發(fā)出命令或由服務(wù)器強(qiáng)制進(jìn)入這個(gè)狀態(tài)。
IMAP4相關(guān)知識(shí)[ ]
不像大多數(shù)舊的Internet協(xié)議,IMAP4生來支持加密注冊(cè)機(jī)制,IMAP4中也支持明文傳輸密碼因?yàn)榧用軝C(jī)制的使用需要客戶端和服務(wù)器雙方的一致,明文密碼的使用是在在一些客戶端和服務(wù)器類型不同的情況下(例如Microsoft Windows客戶端和非Windows服務(wù)器),使用SSL也可以對(duì)IMAP4的通信進(jìn)行加密,通過將在SSL上的IMAP4通信通過993端口傳輸或者在IMAP4線程建立的時(shí)候聲明STARTTLS。