在我们对电子邮箱进行使用的时候,大家是否发现过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服务器。在降低编写此类服务器难度的同时,参照响应也使得入侵检测更见简单。