似乎
如何使用非 ascii 字符串进行 GMAIL SEARCH
来自 Google Groups的一些评论,但无法掌握如何使用 Python 和创建它imaplib
:
使用文字发送非 ASCII 数据:
. search charset utf-8 x-gm-raw {30}
+ go ahead
"живалов -йцукен"
* SEARCH 586
. OK SEARCH completed (Success)
似乎
如何使用非 ascii 字符串进行 GMAIL SEARCH
来自 Google Groups的一些评论,但无法掌握如何使用 Python 和创建它imaplib
:
使用文字发送非 ASCII 数据:
. search charset utf-8 x-gm-raw {30}
+ go ahead
"живалов -йцукен"
* SEARCH 586
. OK SEARCH completed (Success)
这是使用 utf-8 编码的主题的 Python IMAP 搜索的副本,经过广泛的研究,我在那里得出了相同的结论:目前这是不可能用 Python 的imaplib
模块实现的,因为该search
方法不支持 IMAP 文字({<number>}
使用的字符串表示文字由imaplib
) 引用。这同样适用于该uid
方法,因此它不能用于解决该search
限制。
请注意,在过去,此功能可能是在不使用 IMAP 文字的情况下实现的,如问题Python IMAP search using a subject encoding with iso-8859-1中所示。
imaplib
显然需要一些黑客攻击,因此search
支持将搜索字符串作为文字传递,就像在您问题中的原始 IMAP 交互中一样。一种可能是在imapclient项目的上下文中实现它,这可能比对 Python 标准库的更改更容易。
My fork of the IMAPClient library adds a gm_search()
method which perform's Gmail's X-GM-RAW search query using IMAP literals.
Example:
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.
I'm waiting for feedback from the author if it should be included in the main project.