2014-03-13 64 views
0

我試圖通過python imaplib搜索「10分鐘以上」的電子郵件我可以搜索任何字符串,但沒有日期的電子郵件。Python的imap郵件分鐘與

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

如何在幾分鐘內搜索?

回答

3

SEARCH命令(SENTSINCE,SINCE,SENTBEFORE,SENTON,BEFORE)只能與日期而不是日期+時間戳一起使用。這意味着搜索標準僅限於DD-MMM-YYYY。你不能包括小時或分鐘或秒,只是日期。

YES:由於 「01-MAR-2014」

NO A1搜索:由於 「01-MAR-2014 00:00:00」

1搜索,因爲「01-MAR-2014 A1搜索「

  • SEARCH 498 499 500

1搜索,因爲 」01-MAR-2014 00:00:00「

IMAP命令中有1個錯誤搜索:無效的搜索日期參數

您必須查看消息號由搜索返回的每條消息,並在代碼中應用時間戳過濾。例如:

1取498:500 INTERNALDATE

  • 498 FETCH(INTERNALDATE 「04-MAR-2014 13時07分29秒-0600」)

  • 499 FETCH(INTERNALDATE「05 -mar-2014 7點16分43秒-0600" )

  • 500 FETCH(INTERNALDATE 「05-MAR-2014七時44分36秒-0600」)

或fetch 498:500(body.peek [header.fields(Date)])如果您更喜歡使用該日期。

-Rick

0

基準IMAP不允許這樣做。有一個擴展,WITHIN,這樣做,但它很實施。看看你的服務器是否支持WITHIN。如果沒有,你只需要搜索今天的郵件,檢索日期字段或INTERNALDATE,並自己進行微調。