6.3.4 CREATE 命令
参数 (Arguments): 邮箱名称
响应 (Responses): 可选的未标记响应:LIST
结果 (Result):
- OK - create 完成
- NO - create 失败:无法使用该名称创建邮箱
- BAD - 命令未知或参数无效
CREATE 命令创建具有给定名称的邮箱。仅当已创建具有该名称的新邮箱时才返回 OK 响应。尝试创建 INBOX 或引用现有邮箱的名称是错误的。创建中的任何错误都将返回标记的 NO 响应。如果客户端尝试创建不是有效 Net-Unicode 名称的 UTF-8 邮箱名称,则服务器必须 (MUST) 拒绝创建或在创建邮箱之前将名称转换为 Net-Unicode。如果服务器决定转换 (规范化) 名称,它应该 (SHOULD) 返回带有 OLDNAME 扩展数据项的未标记 LIST,其中 OLDNAME 值是提供的邮箱名称,name 参数是规范化的邮箱名称。(有关更多详细信息,请参阅第 6.3.9.7 节。)
在一个 IMAP 会话中创建的邮箱可以 (MAY) 使用未经请求的 LIST 响应向其他 IMAP 会话宣布。如果服务器在创建邮箱时自动订阅邮箱,则每个受影响的已订阅邮箱名称的未经请求的 LIST 响应必须 (MUST) 包含 \Subscribed 属性。
如果邮箱名称后缀为服务器的层次结构分隔符 (由 LIST 命令从服务器返回),这是客户端打算在层次结构中的此名称下创建邮箱名称的声明。不需要此声明的服务器实现必须 (MUST) 忽略该声明。无论如何,创建的名称都没有尾随的层次结构分隔符。
如果服务器的层次结构分隔符出现在名称的其他位置,则服务器应该 (SHOULD) 创建成功完成 CREATE 命令所需的任何上级层次结构名称。换句话说,在 "/" 是层次结构分隔符的服务器上尝试创建 "foo/bar/zap" 应该 (SHOULD) 创建 foo/ 和 foo/bar/ (如果它们尚不存在)。
如果使用与已删除邮箱相同的名称创建新邮箱,则其唯一标识符必须 (MUST) 大于先前版本邮箱中使用的任何唯一标识符,除非新版本具有不同的唯一标识符有效性值。有关更多详细信息,请参阅第 6.4.9 节中 UID 命令的描述。
示例:
C: A003 CREATE owatagusiam/
S: A003 OK CREATE completed
C: A004 CREATE owatagusiam/blurdybloop
S: A004 OK CREATE completed
C: A005 CREATE NonNormalized
S: * LIST () "/" "Normalized" ("OLDNAME" ("NonNormalized"))
S: A005 OK CREATE completed
(在最后一个示例中,假设 "NonNormalized" 是非 NFC 规范化的 Unicode 邮箱名称,而 "Normalized" 是其 NFC 规范化版本。)
**注意:**此示例的解释取决于 "/" 是否作为层次结构分隔符从 LIST 返回。如果 "/" 是层次结构分隔符,则创建名为 "owatagusiam" 的新层次结构级别,其中包含名为 "blurdybloop" 的成员。否则,将在同一层次结构级别创建两个邮箱。