我想使用下面的代码来搜索今天进入“我的收件箱”的所有电子邮件,主题以“英国公司现金运动......"开头。通常电子邮件会以这个确切的主题进入,但结尾可以改变。在VBA中,我会使用通配符 *,但我不确定如何在Python中实现这一点。
我也还没有弄清楚如何只搜索今天收到的电子邮件。
import win32com.client
import datetime
import re
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
folder = outlook.Folders("MyInbox")
inbox = folder.Folders.Item("Inbox")
messages = inbox.Items
messages.Sort("[ReceivedTime]", True)
for message in messages:
if message.subject == 'Company UK Cash Movement.+':
print("Found message")
else:
print("not found")
2条答案
按热度按时间mdfafbf11#
尝试
.startswith()
:7jmck4yq2#
不要遍历文件夹中的所有项目。请使用
Items.Find/FindNext
或Items.Restrict
。您可以将以下查询传递给Items.Restrict(它将返回另一个带有游行的Items集合)。
您可以在PR_NORMALIZED_SUBJECT属性(DASL名称
http://schemas.microsoft.com/mapi/proptag/0x0E1D001F
)上创建查询。请注意,对主题的限制不起作用,因为它未被索引(只有规范化主题被索引)。