在Gmail中,我有一堆带标签的邮件.
我想使用IMAP客户端来获取这些消息,但我不确定搜索咒语是什么.
c = imaplib.IMAP4_SSL('imap.gmail.com') c.list() ('OK', [..., '(\\HasNoChildren) "/" "GM"', ...]) c.search(???)
我没有找到很多这方面的例子.
imaplib
有意地是围绕IMAP协议的薄包装器,我假设允许更大程度的用户灵活性和更大的适应IMAP规范变化的能力.因此,它不会为您的搜索查询提供任何结构,并且需要您熟悉IMAP规范.
正如您将在"6.4.4.SEARCH命令"一节中看到的那样,您可以为搜索条件指定许多内容.请注意,您必须先搜索SELECT
邮箱(文件夹的IMAP名称),然后才能搜索任何内容.(根据我的理解,同时搜索多个文件夹需要多个IMAP连接.)IMAP4.list
将帮助您确定邮箱标识符的内容.
在配置传递给你的字符串时,也可以使用imaplib
与上面链接的RFC中的"9. Formal Syntax".
它r'(\HasNoChildren) "/"'
是根邮箱上的邮箱标志/
.参见"7.2.6.标志响应".
祝好运!
import imaplib obj = imaplib.IMAP4_SSL('imap.gmail.com', 993) obj.login('username', 'password') obj.select('**label name**') # <-- the label in which u want to search message obj.search(None, 'FROM', '"LDJ"')
据Google称,标签的访问方式与IMAP文件夹完全相同.