Skip to main content

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