跳到主要内容

7. 可选POP3命令 (Optional POP3 Commands)

上述讨论的POP3命令必须由所有最小POP3服务器实现支持。

下述可选POP3命令允许POP3客户端在消息处理中拥有更大的自由度,同时保持简单的POP3服务器实现。

注意:本备忘录强烈 (STRONGLY) 鼓励实现支持这些命令,而不是开发增强的投递箱和扫描列表。简而言之,本备忘录的理念是将智能放在POP3客户端而非POP3服务器中。

TOP 命令

格式 (Format): TOP msg n

参数 (Arguments): 消息编号(必需),不得引用标记为已删除的消息;以及非负行数(必需)

限制 (Restrictions): 只能在事务状态中给出

讨论 (Discussion): 如果POP3服务器发出正面响应,则响应是多行的。在初始+OK之后,POP3服务器发送消息的头部、分隔头部和正文的空行,然后是指定消息正文的指定行数,注意字节填充终止字符(与所有多行响应一样)。

可能的响应 (Possible Responses):

  • +OK
  • -ERR

示例 (Examples):

C: TOP 1 10
S: +OK
S: <POP3服务器发送消息的头部、一个空行,然后是消息正文的前10行>
S: .

UIDL 命令

格式 (Format): UIDL [msg]

参数 (Arguments): 消息编号(可选),如果存在,不得引用标记为已删除的消息

限制 (Restrictions): 只能在事务状态中给出

讨论 (Discussion): 如果给出了参数并且POP3服务器发出正面响应,则响应包含该消息的信息行。此行称为该消息的"唯一ID列表 (unique-id listing)"。消息的唯一ID (unique-id) 是由服务器确定的任意字符串,由0x21到0x7E范围内的1到70个字符组成,它唯一标识邮件投递箱中的消息,并且在会话之间持久存在。只要使用唯一ID的实体存在,服务器就不应在给定的邮件投递箱中重用唯一ID。

可能的响应 (Possible Responses):

  • +OK
  • -ERR

示例 (Examples):

C: UIDL
S: +OK
S: 1 whqtswO00WBw418f9t5JxYwZ
S: 2 QhdPYR:00WBw1Ph7x7
S: .

USER 命令

格式 (Format): USER name

参数 (Arguments): 标识邮箱的字符串(必需),仅对服务器有意义

限制 (Restrictions): 只能在POP3问候语之后或不成功的USER或PASS命令之后的授权状态中给出

讨论 (Discussion): 要使用USER和PASS命令组合进行认证,客户端必须首先发出USER命令。如果POP3服务器以正面状态指示符("+OK")响应,则客户端可以发出PASS命令完成认证,或发出QUIT命令终止POP3会话。

可能的响应 (Possible Responses):

  • +OK
  • -ERR

示例 (Examples):

C: USER frated
S: +OK User name accepted, password please

PASS 命令

格式 (Format): PASS string

参数 (Arguments): 服务器/邮箱特定的密码(必需)

限制 (Restrictions): 只能在成功的USER命令之后立即在授权状态中给出

讨论 (Discussion): 当客户端发出PASS命令时,POP3服务器使用USER和PASS命令的参数对来确定是否应授予客户端访问适当邮件投递箱的权限。

可能的响应 (Possible Responses):

  • +OK
  • -ERR

示例 (Examples):

C: PASS secret
S: +OK maildrop locked and ready

APOP 命令

格式 (Format): APOP name digest

参数 (Arguments): 标识邮箱的字符串和MD5摘要字符串(均必需)

限制 (Restrictions): 只能在POP3问候语之后或不成功的USER或PASS命令之后的授权状态中给出

讨论 (Discussion): 通常,每个POP3会话都以USER/PASS交换开始。这导致服务器/用户ID特定的密码以明文形式在网络上发送。对于间歇性使用POP3,这可能不会带来巨大风险。然而,许多POP3客户端实现会定期连接到POP3服务器——以检查新邮件。此外,会话启动的间隔可能为五分钟的数量级。因此,密码被捕获的风险大大增加。

需要一种替代的认证方法,它提供来源认证和重放保护,但不涉及在网络上以明文形式发送密码。APOP命令提供此功能。

可能的响应 (Possible Responses):

  • +OK
  • -ERR

示例 (Examples):

S: +OK POP3 server ready <[email protected]>
C: APOP mrose c4c9334bac560ecc979e58001b3e22fb
S: +OK maildrop has 1 message (369 octets)

术语表 (Glossary):

  • unique-id (唯一ID): 持久消息标识符
  • MD5 digest (MD5摘要): 用于认证的加密哈希
  • AUTHORIZATION state (授权状态): 初始身份验证阶段
  • TRANSACTION state (事务状态): 主要操作阶段