使用 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 '')
以下代码使用 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 '')