6.3.5 DELETE 命令
参数 (Arguments): 邮箱名称
响应 (Responses): 可选的未标记响应:LIST
结果 (Result):
- OK - delete 完成
- NO - delete 失败:无法删除该名称的邮箱
- BAD - 命令未知或参数无效
DELETE 命令永久删除具有给定名称的邮箱。仅当邮箱已被删除时才返回标记的 OK 响应。尝试删除 INBOX 或不存在的邮箱名称是错误的。
DELETE 命令必须不 (MUST NOT) 删除下级层次结构名称。例如,如果邮箱 "foo" 具有下级 "foo.bar" (假设 "." 是层次结构分隔符),则删除 "foo" 必须不 (MUST NOT) 删除 "foo.bar"。尝试删除具有下级层次结构名称并且具有 \Noselect 邮箱名称属性的名称是错误的 (有关更多详细信息,请参阅第 7.3.1 节中 LIST 响应的描述)。
允许删除具有下级层次结构名称且没有 \Noselect 邮箱名称属性的名称。如果服务器实现在存在下级层次结构名称时不允许删除该名称,则它应该 (SHOULD) 通过返回标记的 NO 响应来禁止 DELETE 命令。NO 响应应该 (SHOULD) 包含 HASCHILDREN 响应代码。或者,服务器可以 (MAY) 允许 DELETE 命令,但它会为该名称设置 \Noselect 邮箱名称属性。
如果服务器返回 OK 响应,则该邮箱中的所有消息都将被 DELETE 命令删除。
已删除邮箱的最高使用的唯一标识符的值必须 (MUST) 被保留,以便使用相同名称创建的新邮箱不会重用先前版本的标识符,除非新版本具有不同的唯一标识符有效性值。有关更多详细信息,请参阅第 6.4.9 节中 UID 命令的描述。
如果服务器决定转换 (规范化) 邮箱名称,它应该 (SHOULD) 返回带有 "\NonExistent" 属性和 OLDNAME 扩展数据项的未标记 LIST,其中 OLDNAME 值是提供的邮箱名称,name 参数是规范化的邮箱名称。(有关更多详细信息,请参阅第 6.3.9.7 节。)
在一个 IMAP 会话中删除的邮箱可以 (MAY) 使用包含 "\NonExistent" 属性的未经请求的 LIST 响应向其他 IMAP 会话宣布。
示例:
C: A682 LIST "" *
S: * LIST () "/" blurdybloop
S: * LIST (\Noselect) "/" foo
S: * LIST () "/" foo/bar
S: A682 OK LIST completed
C: A683 DELETE blurdybloop
S: A683 OK DELETE completed
C: A684 DELETE foo
S: A684 NO Name "foo" has inferior hierarchical names
C: A685 DELETE foo/bar
S: A685 OK DELETE Completed
C: A686 LIST "" *
S: * LIST (\Noselect) "/" foo
S: A686 OK LIST completed
C: A687 DELETE foo
S: A687 OK DELETE Completed
示例:
C: A82 LIST "" *
S: * LIST () "." blurdybloop
S: * LIST () "." foo
S: * LIST () "." foo.bar
S: A82 OK LIST completed
C: A83 DELETE blurdybloop
S: A83 OK DELETE completed
C: A84 DELETE foo
S: A84 OK DELETE Completed
C: A85 LIST "" *
S: * LIST () "." foo.bar
S: A85 OK LIST completed
C: A86 LIST "" %
S: * LIST (\Noselect) "." foo
S: A86 OK LIST completed