应用过滤器从 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'] ")

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

解决方法

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...