可打印的ASCII码 , “<"除外
greeting=" OK"[resp-code]*gchar[timestamp]*gcharCRLF
最大512八位组
multi-line=single-line*dot-stuffed"."CRLF
rchar=%x21-2E/%x30-5C/%x5E-7F
可打印的ASCII码 , “/”和“]”除外
resp-code="["resp-level*("/"resp-level)"]"
resp-level=1*rchar
schar=%x21-5A/%x5C-7F
可打印的ASCII码,“[”除外
single-line=status[SPtext]CRLF;最大512八位组
status=" OK"/"-ERR"
text=*schar/resp-code*CHAR
timestamp="<"*VCHAR">"
必须符合RFC-822的msg-id规定
4.参数和响应长度
这里的阐述增加了RFC1939提出的命令和参数长度限制 。
一个命令的最大长度从47字符(4字符的命令 , 单空格 , 40个字符变量 , CRLF)增加
到255八位组 , 包括有限CRLF 。
支持CAPA命令的服务器必须支持长达255八位组的命令 。服务器也必须支持任何支持
的功能所指定的最大命令长度 。
命令响应的第一行的最大长度(包括开始的问候)还是512八位组不变(包括有限CRLF) 。
5.CAPA命令
POP3的CAPA命令返回POP3服务器支持的功能列表 。它在AUTHORIZATION和TRANSACTION
状态下均可使用 。
一个功能描述必须记录在功能通告于何种状态下 , 以及在哪种状态下命令有效 。
在AUTHORIZATION状态下可用的功能必须在两种状态下都予以通告 。
假如某个功能在两种状态下都被通告了 , 但是在身份验证之后参数可能不同 。这种可能
性必须在功能描述中说明 。
(这些要求答应一个客户端在不使用任何TRANSACTION-only功能 , 以及任何在身份验证之
后参数值可能不同的功能时 , 只发送一个CAPA命令 。)
假如身份验证这步商定了一个完整性保护层 , 客户端应该在验证重新发送CAPA命令 ,
以阻止活动的down-negotiation攻击 。
每个功能都可能激活额外的协议命令 , 额外的参数和已存在命令的响应 , 或者描述服务
器行为的一个方面 。这些细节在相应的功能描述中阐述 。
第3节描述了使用[ABNF]的CAPA响应 。当一个功能响应描述了一个可选命令时 ,
CAPA
参数:无
限制:无
讨论:-ERR响应表明功能命令没有实现 , 客户端必须像以前一样对功能进行探测 。
-OK响应后面紧跟着的就是一个功能列表 , 一行一个功能 。每个功能名后面可能都有一
个空格和由空格分隔的一个参数列表 。每个功能行被限制在512八位组以内(包括CRLF在
内) 。功能列表碰到包含一个终止八位组(“.”)和一个CRLF对时结束 。
可能的响应: OK–ERR
例子:
C:CAPA
S: OKCapabilitylistfollows
S:TOP
S:USER
S:SASLCRAM-MD5KERBEROS_V4
S:RESP-CODES
S:LOGIN-DELAY900
S:PIPELINING
S:EXPIRE60
S:UIDL
S:IMPLEMENTATIONShlemazle-Plotz-v302
S:.
6.功能的初始集合
这节定义了POP3功能的一个初始集合 。这些包括可选POP3命令 , 已经发布的POP3扩
展 , 以及POP3服务器之间的行为差异 , 这种差异能够影响到客户端 。
注重到没有APOP功能 , 尽管APOP在[POP3]中是可选命令 。客户端通过包含在一个尖括
号(“<>”)里的初始验证的问候语的存在与否来发现服务器对APOP的支持 。因此 , APOP功
能为服务器声明同样的事情引进了两种方法 。
6.1TOP功能
CAPA标记:TOP
参数:无
附加命令:TOP
影响的标准命令:无
声明的状态/可能的不同:两者/没有
命令有效的状态:TRANSACTION
推荐阅读
- 支持IPv6地址聚合和重编号的DNS扩展
- IPv6 主机和软件路由器转换机制
- GRE的Key和Sequence Number扩展
- SMTP 针对命令流水线的服务扩展
- 主机扩展用于IP多点传送
- IMAP4 ID 扩展名
- v3 简单目录访问协议:传输层安全扩展
- DNS协议概述
- 荣耀9x支持存储卡扩展吗
- IP骨干网BGP路由协议的扩展性
