4. The AUTHORIZATION State (授权状态)
一旦POP3客户端打开了TCP连接, POP3服务器就会发出一行问候消息. 这可以是任何正面响应. 示例可能是:
S: +OK POP3 server ready
POP3会话现在处于授权状态 (AUTHORIZATION state). 客户端现在必须 (must) 向POP3服务器标识和验证自己. 本文档描述了两种可能的机制: USER和PASS命令组合以及APOP命令. 这两种机制将在本文档后面描述. [RFC1734]中描述了其他身份验证机制. 虽然没有要求所有POP3服务器都必需的单一身份验证机制, 但POP3服务器当然必须支持至少一种身份验证机制.
一旦POP3服务器通过使用任何身份验证命令确定应授予客户端对适当邮箱的访问权限, POP3服务器然后获取邮箱上的独占访问锁 (exclusive-access lock), 以防止在会话进入更新状态之前修改或删除消息. 如果成功获取锁, POP3服务器以正面状态指示器响应. POP3会话现在进入事务状态 (TRANSACTION state), 没有消息被标记为已删除. 如果由于某种原因无法打开邮箱 (例如, 无法获取锁, 客户端被拒绝访问适当的邮箱, 或无法解析邮箱), POP3服务器以负面状态指示器响应. (如果获取了锁但POP3服务器打算以负面状态指示器响应, POP3服务器必须 (must) 在拒绝命令之前释放锁.) 在返回负面状态指示器后, 服务器可以 (may) 关闭连接. 如果服务器不关闭连接, 客户端可以 (may) 发出新的身份验证命令并重新开始, 或者客户端可以 (may) 发出QUIT命令.
POP3服务器打开邮箱后, 它为每条消息分配一个消息编号 (message-number), 并记录每条消息的大小 (以八位字节为单位). 邮箱中的第一条消息被分配消息编号"1", 第二条被分配"2", 依此类推, 因此邮箱中的第n条消息被分配消息编号"n". 在POP3命令和响应中, 所有消息编号和消息大小都以十进制 (base-10) 表示.
以下是在授权状态下使用QUIT命令的摘要:
QUIT Command
参数 (Arguments): 无
限制 (Restrictions): 无
可能的响应 (Possible Responses):
+OK
示例 (Examples):
C: QUIT
S: +OK dewey POP3 server signing off
术语表:
- AUTHORIZATION state: 授权状态
- TRANSACTION state: 事务状态
- UPDATE state: 更新状态
- exclusive-access lock: 独占访问锁
- message-number: 消息编号
- maildrop: 邮箱投递点
- authentication: 身份验证
协议约定:
S:表示服务器发送C:表示客户端发送