win32com-使用python 3.7从重复的电子邮件中获取最新的Outlook电子邮件

问题描述

我已使用win32com将Outlook与Python 3.7相连。我正在尝试按照主题行和发件人ID下载附件并将附件保存到指定位置。我已经能够通过读取python中的excel文件成功完成此操作,该excel文件主题行和目标组成(以保存附件),以使代码更具动态性,但是我仍然面临一个问题-当我拥有同一天有多封主题相同的电子邮件,由于电子邮件重复,因此python无法保存附件。

我已根据“今天”过滤了我的Outlook收件箱项目,但我希望提取最近的电子邮件,我认为这些电子邮件只能基于一起考虑的日期时间来完成。

示例-主题行为“测试”。我在同一天的不同时间收到两封与此主题行的电子邮件。如何从这两封电子邮件中的最新电子邮件中下载附件?我的excel文件仅包含“测试”主题行的一项。

任何帮助将不胜感激。

谢谢!

val_date = datetime.date.today()

    for i in Items:
#        print(i)
        if i.Subject == file['Subject'][j] and i.ReceivedTime.date() == val_date:
          #  print(i,i.ReceivedTime)
            #j = j + 1
  #          print("j:",j)
            for attachment in i.Attachments:
                print(attachment.FileName)

解决方法

首先,切勿循环浏览文件夹中的所有项目-这就是Items.Find/FindNextItems.Restrict的用途。

第二,切勿对日期时间值使用"=="运算符:即使您将值匹配到毫秒,也永远不会满足该条件。在您的情况下,这只是日期。始终使用范围。