如何在Python中执行IMAP搜索(使用Gmail和imaplib)?

2024-05-14 00:46:25 发布

您现在位置:Python中文网/ 问答频道 /正文

在Gmail中,我有一堆带标签的信息。

我想使用IMAP客户端来获取这些消息,但我不确定搜索咒语是什么。

c = imaplib.IMAP4_SSL('imap.gmail.com')
c.list()
('OK', [..., '(\\HasNoChildren) "/" "GM"', ...])
c.search(???)

我找不到很多这样的例子。


Tags: com信息消息客户端sslok标签gmail
3条回答

imaplib故意是IMAP协议的一个薄包装,我假设它允许更大程度的用户灵活性和适应IMAP规范变化的能力。因此,它并不真正为您的搜索查询提供任何结构,并要求您熟悉IMAP specification

如“6.4.4”一节所述。“搜索命令”,可以为搜索条件指定许多内容。注意,在搜索任何内容之前,您必须SELECT邮箱(文件夹的IMAP名称)。(根据我的理解,同时搜索多个文件夹需要多个IMAP连接。)IMAP4.list将帮助您确定邮箱标识符是什么。

在构造传递给imaplib的字符串时也很有用的是“9”。正式语法”从RFC链接到上面。

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"')

相关问题 更多 >