在 exchangelib 的 filter() 中应用正则表达式

Apply Regex in filter() in exchangelib

我正在编写一个需要使用正则表达式过滤主题的脚本。 exchangelib 支持吗?如果是这样,我可以举一些例子吗?

正则表达式是not supported in EWS,所以你不能做过滤server-side。您必须提取所有项目并进行过滤 client-side:

for item in account.inbox.all():
    if re.match(r'some_regexp', item.subject):
        # Do something

如果您希望只匹配很少的项目,您可以通过先只获取主题字段然后获取完整项目来进行优化:

matches = []
for item in account.inbox.all().only('subject'):
    if re.match(r'some_regexp', item.subject):
        matches.append(item)
full_items = account.fetch(matches)