过滤当前日期(今天的日期)发送的 Outlook 电子邮件

Posted

技术标签:

【中文标题】过滤当前日期(今天的日期)发送的 Outlook 电子邮件【英文标题】:Filter outlook emails sent on current date (today's date) 【发布时间】:2020-09-28 04:49:09 【问题描述】:

我想下载来自我的 Outlook 收件箱的特定附件。我想根据主题和发送日期过滤这些电子邮件。

这就是我正在做的:

 Outlook = win32com.client.Dispatch("Outlook.Application")
 olNs = Outlook.GetNamespace("MAPI")
 Inbox = olNs.GetDefaultFolder(6)

 Filter = "[Subject] = 'Important Report' And [SenderEmailAddress] = 'data@cool.com' And [SentOn] 
 > '9/26/2020 08:00 AM'"


 Items = Inbox.Items.Restrict(Filter)
 Item = Items.GetFirst()

 for attachment in Item.Attachments:
 print(attachment.FileName)
 attachment.SaveAsFile(r"C:\Users\lynnette\Desktop\file.xls")

目前,它正在使用 [SentOn] 进行过滤,但是,我使用的是特定日期。我想根据当前日期进行过滤。我研究了 Items.Restrict,但找不到当前日期过滤器。

感谢任何帮助

【问题讨论】:

首先,您需要为Filter 使用不同的变量名,它是保留的VBA 关键字。顺便说一句,我添加了VBA 标签,因为我认为这是VBA 代码。这个answer 已经给了你提示,你只需要将它与我在帖子中展示的现有主题过滤器结合起来。 好的,我会研究这个并完成这个。谢谢 @L42,能否请您链接您的帖子,或者告诉我要搜索什么标题?谢谢 这是link 【参考方案1】:

我相信你想做这三个之一:

今天:

Items.Restrict("@SQL=%today(\"urn:schemas:httpmail:datereceived\")%")

从确切日期开始:

Items.Restrict("@SQL=(\"urn:schemas:httpmail:datereceived\" >= '9/26/2020 00:00')")

日期之间:

Items.Restrict("@SQL=(\"urn:schemas:httpmail:datereceived\" >= '9/26/2020 00:00' AND \"urn:schemas:httpmail:datereceived\" <= '9/27/2020 23:59')

Microsoft documentation

更新 1:

在您的代码中,您可以简单地第二次使用限制。

Items = Inbox.Items.Restrict(Filter)
Items = Items.Restrict("@SQL=%today(\"urn:schemas:httpmail:datereceived\")%")
Item = Items.GetFirst()

【讨论】:

谢谢@hiichaki,我想知道如何将它合并到我上面的过滤器代码中?我需要创建一个新变量吗?或者我可以将它放在我当前过滤器的“Items”变量中吗? 谢谢,所以可以让 Items 变量保存两个不同的项目吗?我需要研究 VBA,因为我还在学习这个。谢谢

以上是关于过滤当前日期(今天的日期)发送的 Outlook 电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

基于日期保存附件的 Outlook 规则脚本

添加日期列vba

outlook如何周期性定时发邮件

发布一个空的html5日期输入今天发送

如何按当前日期之后的日期过滤?

如何在outlook中发送定期的提醒邮件?例如每月一次或者每两周一次的邮件?