Фильтрация сообщений с помощью AQS из почтового ящика Exchange

Синтаксис расширенного запроса (AQS) это синтаксис запросов, используемый Exchange в качестве альтернативы поисковым фильтрам для выражения критериев поиска. AQS — более гибкий способ выполнения поисков и получения результатов по всем часто используемым полям элементов. AQS также удобен для пользователей, прост в понимании и быстр в освоении. Использование AQS подходит для поиска сообщений по вложениям и получателям.

Создание поисковых запросов AQS

Вы можете создать поисковый запрос с помощью AQS, используя:

  • ExchangeAdvancedSyntaxQueryBuilder, который представляет конструктор поискового выражения на основе Advanced Query Syntax (AQS). или
  • ExchangeAdvancedSyntaxMailQuery, который напрямую создаёт строку AQS на основе поддерживаемых ключевых слов.

Использование конструктору запросов

Для создания поискового запроса с ExchangeAdvancedSyntaxQueryBuilder вам необходимо:

Ниже приведён образец кода, показывающий, как выполнить перечисленные выше шаги:

using (var client = EWSClient.GetEWSClient(...))
{
    var advancedBuilder = new ExchangeAdvancedSyntaxQueryBuilder();
    advancedBuilder.From.Equals("Jim Martin");
    advancedBuilder.Subject.Contains("report");
    advancedBuilder.HasAttachment.Equals(true);

    var messages = client.ListMessages(client.MailboxInfo.InboxUri, advancedBuilder.GetQuery());
}

Прямые запросы AQS

Для создания поискового запроса с ExchangeAdvancedSyntaxMailQuery вам нужно:

Ниже приведён образец кода, показывающий, как выполнить перечисленные выше шаги:

using (var client = EWSClient.GetEWSClient(...))
{
    ExchangeAdvancedSyntaxMailQuery query = new ExchangeAdvancedSyntaxMailQuery("subject:(product AND report)");
    ExchangeMessageInfoCollection messages = client.ListMessages(client.MailboxInfo.InboxUri, query);
}