首页 > 解决方案 > Python:按日期范围过滤 Outlook 味精

问题描述

我有以下代码,但无法使用日期时间范围正确过滤。我看到了一些使用循环并比较已转换为日期时间的 ReceivedTime 的解决方案,但这不是我想要的。我想首先检查文件夹中过滤的电子邮件数量(特定日期时间范围内的未读电子邮件)。如果过滤的电子邮件数量符合特定标准,那么我将继续循环每封过滤的电子邮件。感谢是否有人有任何想法如何做到这一点:

# Import
import win32com.client
import win32com
import os
import sys
import datetime


# Open Microsoft Outlook
outlook = win32com.client.Dispatch('Outlook.Application')

# Set Outlook Folder Name
inbox = outlook.GetNamespace('MAPI').GetDefaultFolder(6)
folder = inbox.Folders['FilteredFolder']

# Set Outlook date filter
sFilter = "[ReceivedTime]>'{0}".format((datetime.datetime.today() - datetime.timedelta(hours=2)).strftime("%y-%m-%d %H:%M:%S")) + "'" # Lower datetime bound
sFilter2 = "[ReceivedTime]<'{0}".format((datetime.datetime.today()).strftime("%y-%m-%d %H:%M:%S")) + "'" # Upper datetime bound


messages = folder.Items.Restrict('[Unread] = True') # Restrict for Unread emails
messages = messages.Restrict(sFilter) # Restrict the datetime lower bound
messages = messages.Restrict(sFilter2) # Restrict the datetime upper bound
no_of_messages = len(messages) # Mail count
print(str(no_of_messages))

标签: pythonoutlookpython-datetimeoutlook-filter

解决方案


推荐阅读