Gmail的IMAP扩展命令X-GM-RAW允许,如果我使用ASCII查询字符串我执行搜索。 如果UTF-8字符在查询中使用的IMAP返回坏响应。
https://developers.google.com/google-apps/gmail/imap_extensions#extension_of_the_search_command_x-gm-raw
应如何utf-8的输入字符串进行编码,使得X-GM-RAW搜索将正常工作。 我不想失去灵活性,搜索特定的领域,如“主题”或“rfc833msgid”
谢谢
指定字符集UTF-8和文字发送UTF-8的搜索字词。 例如,要搜索你好,以UTF-8编码的时,这是6个字节长:
A SEARCH CHARSET UTF-8 X-GM-RAW {6}
+ go ahead
你好
* SEARCH 15
a OK SEARCH completed (Success)
在这个例子中,你将实际发送你好的6个字节的UTF-8编码的第三行。
这将为接受的ASTRING,包括主体和头部消息-ID的任何搜索关键字工作。
IMAP不是8位的清洁 ,因此具有使用多种不同的编码来表示任意8位数据。
对于像文件夹和标签 IMAP4采用改性UTF-7来表示这些字符。 方便的是,在修改UTF7编码的ASCII数据编码为自身,这样做通常没有什么特别的需求。
对于消息头 (包括受试者)的文本被编码为默词语 。
最后atttachments通常编码为Base64的或引用打印
我最好的猜测是,Gmail使用修改UTF7他们的X-GM-RAW查询。 我发现改性UTF7最好的参考实现是在IMAPClient Python库
希望这可以帮助!