首页 > 解决方案 > 应用过滤器读取来自 win32com 中多个 SenderEmailAddress 的电子邮件

问题描述

我正在尝试阅读从特定电子邮件地址(超过 1 个)收到的电子邮件。对于单一用例,以下代码似乎有效 -

import win32com.client

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(6)

messages = inbox.Items.Restrict("[SenderEmailAddress] = 'abc@xyz.com' ")

为了提供多个电子邮件 ID 作为过滤器,我尝试了以下两种方法,但这不起作用 -

messages = inbox.Items.Restrict("[SenderEmailAddress] = 'abc@xyz.com; mno@xyz.com' ")
messages = inbox.Items.Restrict("[SenderEmailAddress] In ['abc@xyz.com', 'mno@xyz.com'] ")

在这种情况下,如何提供多个过滤器值?

标签: pythonoutlookoutlook-object-model

解决方案


您需要使用OR运算符包含多个条件:

" ([SenderEmailAddress] = 'abc@xyz.com' ) or ([SenderEmailAddress] = 'mno@xyz.com') "

推荐阅读