【发布时间】:2020-08-15 21:46:41
【问题描述】:
我一直在使用下面的代码 sn-p 来获取过去 3 小时内收到的某个子文件夹中的每封电子邮件,并在处理之前从中提取一些业务信息,并且它已经运行了一周左右。但是,昨天由于某种原因,我注意到它没有正常工作,当我添加一个打印语句以查看哪些电子邮件发送到流程功能时,我注意到它从 3 月到现在发送了所有内容(超过 1000 封电子邮件) .
outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
api_folder = outlook.Folders.Item(1).Folders['Some Folder']
start = datetime.datetime.now() - datetime.timedelta(hours=3)
# 05/01/2020 05:23 AM is this the right format?
start = start.strftime('%m/%d/%Y %H:%M %p')
messages = api_folder.Items.Restrict("[ReceivedTime] >= '" + start + "'")
# This prints emails that shouldnt be here after Restrict()
for msg in messages:
print(f"{msg.Subject} - {msg.ReceivedTime}")
我很确定这可能是调用 Restrict 的方式或时间格式上的一个非常愚蠢的错误,但是由于我是编程新手,所以我无法找到导致功能异常。
非常感谢任何帮助。
谢谢
【问题讨论】:
标签: python email outlook pywin32 win32com