2014-12-02 62 views
1

这是允许对IMAP APPEND命令的“回复”吗?有时我想上传邮件的邮件服务器以这种方式响应,而我目前的实现允许使用EXPUNGE。在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命令。

另外:

的命令不是 “进行中”,直到完整的命令 已被接收;特别是在命令继续协商期间命令不是“进行中” 。

我不能把这些东西放在一起。

回答

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响应。

+0

我同意,这是一个EXPUNGE技术上违反规范。 – Max 2014-12-02 16:00:29

+0

@Max:您的评论在技术上违背英语语法规范。 SCNR。 – arnt 2014-12-03 11:09:36

+0

:)。使用智能手机键盘进行回复时,各种奇怪的东西都会出现。 – Max 2014-12-03 15:10:13