我正在通過python訪問GMail的IMAP界面。我運行這樣的命令:當搜索文本包含感嘆號(!),和號(&)等時,IMAP「搜索標題」命令失敗
UID SEARCH HEADER Message-ID "[email protected]"
即成功(返回1 UID匹配的消息,或0,如果它不存在)。但是,如果搜索文本包含某些字符(如&或!),則搜索文本將在該點處截斷。這意味着:
UID SEARCH HEADER Message-ID "[email protected]"
被視爲同
UID SEARCH HEADER Message-ID ""
另外:
UID SEARCH HEADER Message-ID "[email protected]"
被視爲:
UID SEARCH HEADER Message-ID "abc"
我已經通過IMAP語言消失spec和ABNF語言規範像這些字符的eems應該是有效的。爲什麼gmail將這些搜索短語截斷爲「!」和「&」字符?有沒有辦法逃避他們? (我試過!,作爲編碼不好的字符串失敗)。是否有一個RFC或文檔顯示真正應該被接受的內容?這是gmail的imap實現中的錯誤嗎?
我也試過文字格式,同樣的結果:
UID SEARCH HEADER Message-ID {15}
[email protected]
仍被視爲:
UID SEARCH HEADER Message-ID {3}
abc
謝謝!
IMAP RFC3501搜索命令:http://tools.ietf.org/html/rfc3501#section-6.4.4 形式語法:http://tools.ietf.org/html/rfc3501#section-9
我可以證實在搜索查詢中使用感嘆號沒有什麼特別之處。這很可能是您在Gmail中發現的一個錯誤。我建議在開發過程中使用幾個不同的IMAP服務器,特別是因爲gmail的IMAP實現不符合IMAP規範。 – nosid 2012-04-01 19:24:16
謝謝nosid。不幸的是,我需要使用這個代碼的IMAP服務器是gmail,所以在別人上測試對於這個bug是沒有幫助的。但很高興知道我沒有閱讀規範錯誤。我會盡力找到一種方法將這個錯誤報告給谷歌。 – rocketmonkeys 2012-04-03 20:57:36
是的,我目前在通過* alpine *郵件客戶端在Gmail上進行IMAP搜索時遇到此問題,嘗試選擇包含'!'的主題的所有郵件。 – 2016-09-13 15:33:12