Как искать в Outlook.MailItems, где он не принадлежит результату advancedSearch - PullRequest
0 голосов
/ 24 сентября 2018

ФОН:

В настоящее время я ищу MailItems, которые относятся к набору результатов запроса advancedSearch ().

ссылка на документ

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

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

ПОСТАНОВКА ПРОБЛЕМЫ:

Я хочу выполнить поиск и зациклить MailItems, который неудовлетворить «фильтр» этого метода advancedSearch ().Есть ли способ сделать это?

Если НЕТ.Есть ли работа вокруг этого?(либо используя Find () или Restrict ()) Мой конкретный случай заключается в поиске, если UserProperty каждого MailItem равен "ABC" или нет.(не это значение, а имя UserProperty)

здесь я использую:

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

Спасибо.

1 Ответ

0 голосов
/ 24 сентября 2018

Во-первых, перед поиском добавьте «НЕ».Во-вторых, добавьте предложения «is null» или «is not null» - ваш поисковый запрос предполагает, что свойство существует для каждого элемента.Если это не так, результат не определен.

...