2

似乎

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

来自 Google Groups的一些评论,但无法掌握如何使用 Python 和创建它imaplib

使用文字发送非 ASCII 数据:

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

2 回答 2

3

这是使用 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 标准库的更改更容易。

于 2012-10-27T10:17:37.327 回答
1

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.

于 2013-09-08T08:03:32.067 回答