【问题标题】:python imap mail search with minutespython imap 邮件搜索分钟
【发布时间】:2014-03-13 22:14:14
【问题描述】:

我正在尝试通过 python imaplib 搜索“10 分钟前”的电子邮件 我可以搜索带有任何字符串的电子邮件,但不能搜索日期。

result, data = mail.uid('search', None, '(HEADER Subject "SEARCH_TERM")')

如何按分钟进行搜索?

【问题讨论】:

    标签: python imap


    【解决方案1】:

    SEARCH 命令(SENTSINCE、SINCE、SENTBEFORE、SENTON、BEFORE)仅适用于日期,而不是日期 + 时间戳。这意味着搜索条件仅限于 DD-MMM-YYYY。您不能包含小时、分钟或秒,只能包含日期。

    是:a1 搜索自“2014 年 3 月 1 日”

    NO: a1 search since "01-mar-2014 00:00:00"

    自“2014 年 3 月 1 日”以来的 1 次搜索

    • 搜索 498 499 500

    自“2014 年 3 月 1 日 00:00:00”以来的 1 次搜索

    IMAP 命令 SEARCH 中出现 1 个 BAD 错误:搜索日期参数无效

    您必须查看搜索返回消息编号的每条消息,并在代码中应用时间戳过滤。例如:

    1 获取 498:500 内部日期

    • 498 FETCH(内部日期“04-Mar-2014 13:07:29 -0600”)

    • 499 FETCH(内部日期“05-Mar-2014 07:16:43 -0600”)

    • 500 FETCH(内部日期“05-Mar-2014 07:44:36 -0600”)

    如果您更喜欢使用该日期,也可以获取 498:500 (body.peek[header.fields (Date)])。

    -瑞克

    【讨论】:

      【解决方案2】:

      基本 IMAP 不允许这样做。有一个扩展,WITHIN,可以做到这一点,但它的实现并不完善。看看你的服务器是否支持 WITHIN。如果没有,您只需搜索今天的邮件,检索日期字段或 INTERNALDATE,然后自己进行微调。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-03
        • 2016-06-17
        • 1970-01-01
        • 2014-07-08
        • 2019-03-01
        • 1970-01-01
        相关资源
        最近更新 更多