在 Python 中使用 Outlook 时按类别限制

Restricting by Category whilst working with Outlook in Python

我目前正在进行一个项目,需要我将一些电子邮件分类到特定的类别中。

我已经对大部分内容进行了排序,但是当电子邮件上的“类别”为空时,我很难通过 restrict 方法过滤 outlook 对象。

import win32com.client

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
fmnav = outlook.Folders[1]
inbox = fmnav.Folders[5]
emails = inbox.Items
unread = emails.Restrict("[Unread] = True")
uncat = unread.Restrict("[Categories] = 'NULL'")

上面的代码首先限制了对象,只包含未读邮件,但是我不知道如何只获取没有当前类别的对象。

我尝试了多种 NULL、NONE 和空字符串的组合,但都无济于事。这些文档在处理具有值的过滤器方面相当不错,并且没有做一个长布尔运算符说 NOT(...) 我有 30 多个类别,我没有想法。

谢谢!

您需要使用 SQL 语法:

@SQL="http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-000000000046}/Keywords/0x0000101F" IS NULL