6.3.11 STATUS 命令
参数 (Arguments):
- 邮箱名称
- 状态数据项名称
响应 (Responses): 必需的无标记响应:STATUS
结果 (Result):
- OK - status 完成
- NO - status 失败:该名称没有状态
- BAD - 命令未知或参数无效
STATUS 命令请求指定邮箱的状态。它不会更改当前选定的邮箱,也不会影响查询邮箱中任何消息的状态。
STATUS 命令提供了一种替代方法,可以打开第二个 IMAP4rev2 连接并对邮箱执行 EXAMINE 命令,以查询该邮箱的状态,而不会在第一个 IMAP4rev2 连接中取消选择当前邮箱。
与 LIST 命令不同,STATUS 命令不保证响应速度快。在某些情况下,它可能非常慢。在某些实现中,服务器必须在内部以 "只读" 方式打开邮箱以获取某些状态信息。同样与 LIST 命令不同,STATUS 命令不接受通配符。
**注意:**STATUS 命令旨在访问当前选定邮箱以外的邮箱的状态。由于 STATUS 命令可能导致邮箱在内部打开,并且此信息可以通过其他方式在选定的邮箱上获得,因此不应该 (SHOULD NOT) 在当前选定的邮箱上使用 STATUS 命令。但是,服务器必须 (MUST) 能够在选定的邮箱上执行 STATUS 命令。
STATUS 命令必须不 (MUST NOT) 用作 "检查选定邮箱中的新消息" 操作 (有关新消息检查的正确方法的更多信息,请参阅第 7 节和第 7.4.1 节)。
STATUS SIZE (见下文) 可能需要大量时间,具体取决于服务器实现。客户端应谨慎使用 STATUS SIZE。
当前定义的可请求状态数据项:
MESSAGES
- 邮箱中的消息数。
UIDNEXT
- 邮箱的下一个唯一标识符值。有关更多信息,请参阅第 2.3.1.1 节。
UIDVALIDITY
- 邮箱的唯一标识符有效性值。有关更多信息,请参阅第 2.3.1.1 节。
UNSEEN
- 未设置 \Seen 标志的消息数。
DELETED
- 已设置 \Deleted 标志的消息数。
SIZE
- 邮箱的总大小 (以八位字节为单位)。这不严格要求是精确值,但它必须 (MUST) 等于或大于邮箱中所有消息的 RFC822.SIZE FETCH 消息数据项 (参见第 6.4.5 节) 的值之和。
示例:
C: A042 STATUS blurdybloop (UIDNEXT MESSAGES)
S: * STATUS blurdybloop (MESSAGES 231 UIDNEXT 44292)
S: A042 OK STATUS completed