使用GMAIL imap X-GM-RAW搜索utf-8字符串

时间:2012-10-26 20:14:15

标签: python gmail gmail-imap imaplib

似乎

如何使用非ascii字符串进行GMAIL搜索

一些comment from Google Groups,但无法掌握如何使用Python和imaplib创建它:

  

使用文字发送非ASCII数据:

. search charset utf-8 x-gm-raw {30}
+ go ahead
"живалов -йцукен"
* SEARCH 586
. OK SEARCH completed (Success)

2 个答案:

答案 0 :(得分:3)

这是Python IMAP search using a subject encoded with utf-8的副本,经过广泛的研究后,我得出了相同的结论:目前使用Python的imaplib模块无法实现,因为search方法没有' t支持IMAP文字({<number>}用于表示文字的imaplib字符串由search引用。同样适用于uid方法,因此无法用于解决imaplib限制。

请注意,过去此功能可能是在不使用IMAP文字的情况下实现的,如问题Python IMAP search using a subject encoded with iso-8859-1中所示。

显然需要对search进行一些攻击,因此{{1}}支持将搜索字符串作为文字传递,就像您问题中的原始IMAP互动一样。可能是在imapclient项目的上下文中实现它,这可能比对Python标准库进行更改更容易。

答案 1 :(得分:0)

我的fork of the IMAPClient库添加了gm_search()方法,该方法使用IMAP文字执行Gmail的X-GM-RAW搜索查询。

示例:

imap_client.gm_search(u'subject:"ƒoo∫ar" has:attachment', charset='utf8') 
# The method encodes the unicode string internally. I'm debating with myself if that's a good idea or not.

我正在等待作者的反馈,如果它应该包含在主项目中。