这是允许对 IMAP 追加命令的"响应"吗?有时,我想上传一些邮件的邮件服务器会以这种方式响应,而我当前的实现确实允许 EXPUNGE。
A00003 APPEND "somefolder" (Seen) "12-Dec-2012 12:12:12 +0000" {1212}
* 1 EXPUNGE
* 18 EXISTS
* 18 RECENT
+ send APPEND data...
我有什么:
https://www.rfc-editor.org/rfc/rfc3501#section-7.4.1
当没有命令正在进行时,不得发送 EXPUNGE 响应,也不在响应 FETCH、STORE 或 SEARCH 命令时。
也:
在完成命令之前,命令不会"进行中"已收到;特别是,命令不是"正在进行"在命令延续的协商期间。
我无法将这些碎片放在一起。
服务器行为不正确。它不应该发送EXPUNGE
然后发送+
继续。也就是说,这条规则
in particular, a command is not "in progress" during the
negotiation of command continuation
有点毫无意义,我不会相信随机服务器会遵守它。
我可以猜到为什么存在该规则。在如下所示的命令中,3:7
的含义取决于客户端在构造字符串3:7
之前解析并处理了哪些EXPUNGE
响应:
a uid search subject {3}
foo
3:7
但是服务器必须处理 MSN。 客户端通常可以选择通过使用 UID 而不是 MSN 来避免整个问题区域。
我的建议是避免发送 MSN,始终使用 UID,并尽可能容忍奇怪定时的EXPUNGE
响应。