我正在尝试使用Python中的imap_tools
包来获取特定日期收到的所有Outlook电子邮件。这是我用来获取我的两个联系人今天收到的所有电子邮件的正文/文本的代码
from imap_tools import MailBox, Q, OR
from datetime import datetime,date
day,month,year = datetime.now().strftime('%d-%m-%Y').split('-')
mailbox = MailBox('imap-mail.outlook.com').login(address, passe, initial_folder = 'INBOX/reports')
text = [msg.text for msg in mailbox.fetch(Q(OR(from_=['sender1@gmail.com', 'sender2@gmail.com']),
subject='Daily Report', date=date(int(year), int(month), int(day))))]
我发现使用上面的代码时,今天没有收到任何电子邮件。但是,当我使用此代码时:
text = [msg.text for msg in mailbox.fetch(Q(OR(from_=['sender1@gmail.com', 'sender2@gmail.com']),
subject='Daily Report', date=date(int(year), int(month), int(day)+1)))]
我得到结果。我试图理解为什么会这样。我以为我的查询部分Q()
是不正确的,还是我缺少有关imap_tools
中日期选项的信息?同样,有时代码会提取当天收到的不同日期(相隔少于24小时)发送的电子邮件。它与时区有关系吗?任何帮助将不胜感激。