如何搜索 Outlook.MailItems 不属于 advancedSearch 结果的地方

How to search Outlook.MailItems where it does not belong to advancedSearch's result

背景:

目前我正在搜索属于 advancedSearch() 查询结果集的 MailItems。

link to the doc

Outlook.Search advancedSearch = Application.AdvancedSearch(scope, filter, true, advancedSearchTag);
Outlook.Results advancedSearchResults = advancedSearch.Results;

foreach (MailItem item in advancedSearchResults)
{
    MessageBox.Show(item.Subject.ToString());
}

问题陈述:

我想搜索并循环不满足此 advancedSearch() 方法的 "filter" 的 MailItems。有什么办法吗?

如果没有。有什么解决方法吗? (使用 Find() 或 Restrict()) 我的具体情况是搜索每个 MailItem 的 UserProperty 是否为 "ABC"。 (不是它的值,而是 UserProperty 的名称)

在这里,我使用的是:

string filter = "http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-000000000046} LIKE \'%" + propertyName + "%\'";

谢谢。

首先,在搜索前添加 "NOT"。其次,添加 "is null" 或 "is not null" 子句 - 您的搜索查询假设每个项目都存在 属性。如果不是,则结果未定义。