python imap邮件搜索与分钟

时间:2014-03-13 22:14:14

标签: python imap

我正在尝试搜索" 10分钟以上"通过python imaplib发送电子邮件 我可以搜索任何字符串的电子邮件,但不能搜索日期。

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

我怎样才能在几分钟内进行搜索?

2 个答案:

答案 0 :(得分:6)

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

是:a1搜索" 01-mar-2014"

否:a1搜索自" 01-mar-2014 00:00:00"

自2014年3月1日起" 2014年3月1日以及#34;

  • 搜寻498 499 500

自搜索以来" 01-mar-2014 00:00:00"

IMAP命令中的BAD错误SEARCH:无效的搜索日期参数

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

1 fetch 498:500 internaldate

  • 498 FETCH(INTERNALDATE" 04-Mar-2014 13:07:29 -0600")

  • 499 FETCH(INTERNALDATE" 05-Mar-2014 07:16:43 -0600")

  • 500 FETCH(INTERNALDATE" 05-Mar-2014 07:44:36 -0600")

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

-Rick

答案 1 :(得分:0)

基础IMAP不允许这样做。有一个扩展程序WITHIN来执行此操作,但它实际上已经实现了。查看您的服务器是否支持WITHIN。如果不是,您只需要搜索今天的邮件,检索日期字段或INTERNALDATE,然后自己进行微调。