2013-10-28 45 views
2

以下IMAP会话似乎表明在Gmail的实现IMAP的错误:Gmail IMAP NOT命令执行不当?

T SEARCH NOT X-GM-RAW "-label:drafts" 
* SEARCH 1 2 3 4 5 6 7 8 
T OK SEARCH completed (Success) 
T SEARCH X-GM-RAW "-label:drafts" 
* SEARCH 1 2 3 4 5 6 7 8 
T OK SEARCH completed (Success) 

注意此行为不会重现,如果我使用不同的参数X-GM-RAW

T SEARCH NOT X-GM-RAW "label:drafts" 
* SEARCH 1 2 3 4 5 6 7 8 
T OK SEARCH completed (Success) 
t SEARCH X-GM-RAW "label:drafts" 
* SEARCH 9 
t OK SEARCH completed (Success) 

X-GM-RAW当然Gmail IMAP扩展程序(记录为here),但其结果应该是不透明的。

我是唯一一个获得被测帐户凭证的人。我在测试时不应移动邮件,并且我已验证我是唯一访问此帐户的人。

这实际上是错误的行为还是我误解IMAP?

在任何情况下,一个合理的补丁似乎只使用正搜索label:drafts并在IMAP层中反转它,而不是在原始搜索本身内。

+1

看起来像一个bug给我。我怀疑这可能是他们的算法中的一些东西:'如果NOT_IN_SEARCH:invert = true;如果' - 'in string:invert = true'。但是谁知道。 Gmail在一些地方偏离了规范,这看起来像是一个角落案例。 – Max

回答

1

这是它们的扩展,虽然我认为期望它可以像任何其他IMAP搜索术语一样工作是合理的,但显然它们在代码中遇到了一些错误。我建议向他们报告(他们确实阅读了ietf-imapext邮件列表)。