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