IMAP4服務器在郵件系統中的應用
在我們對電子郵箱進行使用的時候,大家是否發現過IMAP協議呢?這個協議的目前版本是IMAP4。那么針對IMAP4服務器的有關使用,我們在文中為大家詳細探討一下。那么具體的內容請從下文來了解一下。
1. 摘要
在處理大量的用戶和許多IMAP4[RFC-2060]服務器時,經常需要把用戶從一個IMAP4服務器轉移到另一個。比方說,由于硬件故障或組織結構的變化就會造成這種變化需求。如果客戶端的IMAP4發生了變化,登錄參照允許該客戶端透明地連接到可選擇的IMAP4服務器上。參照機制的效率要好于目前的“代理方法(proxy method)”。對于后者,本地IMAP4服務器代表客戶與遠程服務器連接,從遠程服務器獲取數據然后再傳送給客戶。參照機制直接使客戶與遠程服務器連接,通常可以提高帶寬的利用率,而且在通過遠程服務器驗證時也不需要本地服務器模擬客戶的腳色。
2. 本文中的約定
在例子中,“C:”和“S:”分別表示后面的一行是由客戶還是服務器發出的。本地服務器是包含用戶收件箱的IMAP4服務器。遠程服務器是包含遠程郵箱的服務器。文中關鍵字“必須”、“不得”、“要求”、“應”、“不該”、“應該”、“不應”、“建議”、“可以”和“可選”的解釋參閱RFC 2119。
3. 概述
支持本文所述擴展的IMAP4服務器必須在CAPABILITY響應中列出關鍵字LOGIN-REFERRALS。激活服務器的LOGIN-REFERRALS功能不需要客戶端的動作。支持LOGIN-REFERRALS功能的IMAP4服務器不得對返回參照的服務器返回參照。如果沒有咨詢服務器,客戶端不能按照超過10級的參照進行。LOGIN-REFERRALS的返回碼必須按照[IMAP-URL]的定義包含一個有效的IMAP服務器URL參數。
本地服務器參照由帶標記的NO或OK相應,或者不帶標記的BYE相應構成,其中包含LOGIN-REFERRALS響應碼。
比如:
A001 NO [REFERRAL IMAP://user;AUTH=*@SERVER2/] 遠程服務器
注意:IMAP-URL規定“user;AUTH=*”是必需的,以免客戶端依賴于匿名登錄。
4. 本地服務器參照
本地服務器可以作為AUTHENTICATE或LOGIN命令的響應返回,也可以出現在連接啟動標志中。如果服務器在帶標記的NO相應中返回本地服務器參照,就說明該服務器不含任何該用戶可以訪問的郵箱。如果服務器在帶標記的OK響應中返回本地服務器參照,則表明該用戶的私人郵箱沒有在該服務器上,但是該服務器上有一個用戶可讀的公共信箱。收到本地服務器參照后,客戶端無法知道這一用戶遷移是暫時的還是長期的。
4.1. LOGIN和AUTHENTICATE參照
如果IMAP4服務器希望把用戶重定向到其它的IMAP4服務器上,那么可以用本地服務器參照響應LOGIN或AUTHENTICATE命令。
例子:
C: A001 LOGIN MIKE PASSWORD
S: A001 NO [REFERRAL IMAP://MIKE@SERVER2/]
通知用戶本服務器無效,連接SERVER2。
例子:
C: A001 LOGIN MATTHEW PASSWORD
S: A001 OK [REFERRAL IMAP://MATTHEW@SERVER2/]
通知用戶的私人信箱在Server2上,但是可以使用公共信箱。#p#
例子:
C: A001 AUTHENTICATE GSSAPI
<交換驗證信息>
S: A001 NO [REFERRAL IMAP://user;AUTH=GSSAPI@SERVER2/]
說明該用戶在這個服務器上無效,試連接SERVER2。
4.2 連接啟動參照BYE
如果IMAP4服務器拒絕連接并把客戶重定向到其它的IMAP4服務器,可以使用不帶標記的BYE和REFERRAL響應碼應答,其中包含指向本地服務器的IMAP URL。
例子:
服務器拒絕連接,是連接SERVER2。
5. 形式語法
下面的語法規范使用了[ABNF]定義的擴展BNF范式。這里修改了RFC2060所規定的IMAP4語法中的“res_text_code”元素。
resp_text_code =/ "REFERRAL" SPACE <imapurl>
;<imapurl>的定義參見[IMAP-URL]。
; resp_text_code的基本定義參見[RFC-2060]。
6. 安全性問題
IMAP4登錄參照機制利用了IMAP URL等協議,與一般的互聯網URL[RFC 1738](特別是IMAP URL)的安全性相同。如果用戶驗證失敗,則服務器不應返回登錄參照,這樣可以避免把用戶帳號信息泄露給未授權的用戶。具有LOGIN-REFERRALS功能,潛在的好處是使編寫一個“密碼捕捉”服務器更容易了,這樣的程序可以收集登錄數據并提示用戶實際使用的IMAP4服務器。在降低編寫此類服務器難度的同時,參照響應也使得入侵檢測更見簡單。