当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何在Python中执行IMAP搜索(使用Gmail和imaplib)?》经验,为你挑选了3个好方法。

在Gmail中,我有一堆带标签的邮件.

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

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

我没有找到很多这方面的例子.



1> cdleary..:

imaplib有意地是围绕IMAP协议的薄包装器,我假设允许更大程度的用户灵活性和更大的适应IMAP规范变化的能力.因此,它不会为您的搜索查询提供任何结构,并且需要您熟悉IMAP规范.

正如您将在"6.4.4.SEARCH命令"一节中看到的那样,您可以为搜索条件指定许多内容.请注意,您必须先搜索SELECT邮箱(文件夹的IMAP名称),然后才能搜索任何内容.(根据我的理解,同时搜索多个文件夹需要多个IMAP连接.)IMAP4.list将帮助您确定邮箱标识符的内容.

在配置传递给你的字符串时,也可以使用imaplib与上面链接的RFC中的"9. Formal Syntax".

r'(\HasNoChildren) "/"'是根邮箱上的邮箱标志/.参见"7.2.6.标志响应".

祝好运!



2> Avadhesh..:
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"')



3> Deestan..:

据Google称,标签的访问方式与IMAP文件夹完全相同.


@pyrony:是的,你可以.Gmail**标签**作为顶级IMAP**邮箱**公开.我不确定他们为什么决定这样做而不是将它们作为IMAP关键词公开,但这就是Gmail决定做的事情.
推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有