2013-10-28 48 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郵件列表)。