使用 IMAP-TOOLS 搜索最近 N 分钟的电子邮件

Search Email Of Last N Minutes Using IMAP-TOOLS

以下代码使用 IMAP 登录 Outlook 电子邮件并检查 Junk 文件夹的内容。

它 return 是主题为 "Title" 的最后一封看不见的电子邮件的内容。

我想在源代码中添加一件事。

是否可以获取最近 10 分钟的最后一封电子邮件? 这样他就不会 return 旧电子邮件。

from imap_tools import MailBox, AND

with MailBox('imap.outlook.com').login(email, password, 'Junk') as mailbox:
    for msg in mailbox.fetch(AND(subject = f'title', seen = False), limit = 1, reverse = True):
        body = msg.text
    for line in body.splitlines():
        print(line)

IMAP REF 中没有按时间搜索:https://www.rfc-editor.org/rfc/rfc3501#section-6.4.4

无论如何你可以做到:

import datetime
from imap_tools import MailBox, A

# get emails that have been received since a certain time
with MailBox('imap.mail.com').login('test@mail.com', 'p', 'INBOX') as mailbox:
    for msg in mailbox.fetch(A(date_gte=datetime.date(2000, 1, 1))):
        print(msg.date.time(), 'ok' if msg.date.hour > 8 else '')
    

https://github.com/ikvk/imap_tools , 我是作者