【问题标题】:How to I filter out emails from multiple senders on a given date using imaplib in Python?如何在 Python 中使用 imaplib 在给定日期过滤来自多个发件人的电子邮件?
【发布时间】:2016-01-05 03:28:46
【问题描述】:

到目前为止,我正在使用 imaplib4 搜索功能,并为每个电子邮件 ID 多次调用它。我尝试在互联网上到处寻找一种格式,让我可以在 OR 中指定电子邮件 ID 和日期。

到目前为止,这种格式对我有用,但我一次只能指定一封电子邮件,所以我会根据电子邮件 ID 拨打电话。

(FROM "abc@email.com" (ON "25-Dec-2015")) 

如果我有 abc 和 def 都在那个日期向我发送电子邮件,我想要一种在一次通话中指定它的方法。

【问题讨论】:

    标签: python email python-3.x imap imaplib


    【解决方案1】:

    如果您的服务器符合 RFC 并具有完整的搜索实现,您可以将 OR 链接在一起。一个简单的搜索应该类似于

    ON "25-DEC-2015" OR FROM "abc@email.com" FROM "def@email.com"
    

    OR 接受两个搜索谓词。如果您需要链接它们,请在另一个中嵌入 OR:

    ON "25-DEC-2015" OR FROM "abc@email.com" OR FROM "def@email.com" FROM "ghi@email.com"
    

    不是一个很好的语法,而且它可能无法在少数地址之外工作。可能不适用于“非品牌”IMAP 服务器。

    【讨论】:

    • 它的 gmail 顺便说一句。谢谢。
    • 你也可以通过他们的 imap 扩展来使用 Gmail 搜索语法。
    • 虽然是gmail,但我不想让代码特定于Gmail。
    • 如果语法不是很好试试这个:考虑每个 FROM 是 n。在所有 FROM 之前插入 n-1 次 OR,如下所示:ON "25-DEC-2015" OR OR FROM "abc@email.com" FROM "def@email.com" FROM "ghi@email.com"
    猜你喜欢
    • 2021-11-29
    • 1970-01-01
    • 2021-11-04
    • 2021-01-18
    • 2019-06-17
    • 2019-02-02
    • 2017-01-04
    • 1970-01-01
    • 2011-09-06
    相关资源
    最近更新 更多