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

Класс IEWSClient предоставляет метод ListMessages(), который получает все сообщения из почтового ящика. Чтобы получить только те сообщения, которые соответствуют некоторому условию, используйте перегруженный метод ListMessages(), который принимает класс MailQuery в качестве аргумента. Класс MailQuery предоставляет различные свойства для указания условий, например, дата, тема, отправитель и получатель.

Фильтрация сообщений

Чтобы получить отфильтрованные сообщения из почтового ящика:

  1. Подключитесь к серверу Exchange.
  2. Создайте экземпляр MailQuery и установите желаемые свойства.
  3. Вызовите метод IEWSClient->ListMessages и передайте MailQuery в параметры, чтобы получить только отфильтрованные сообщения.

Следующий кодовый фрагмент показывает, как получить сообщения, у которых в теме есть строка “Newsletter” и которые были отправлены сегодня.

Фильтрация сообщений по критериям

В приведенных выше примерах кода сообщения фильтруются на основе темы электронной почты и даты. Мы также можем фильтровать и по другим свойствам. Ниже приведены некоторые примеры установки условий с использованием MailQuery.

Критерии фильтрации по сегодняшней дате

Следующий кодовый фрагмент показывает, как фильтровать электронные письма на основе сегодняшней даты.

Критерии фильтрации диапазона дат

Следующий кодовый фрагмент показывает, как фильтровать электронные письма на основе диапазона дат.

Критерии фильтрации по конкретному отправителю

Следующий кодовый фрагмент показывает, как фильтровать электронные письма на основе конкретного отправителя.

Критерии фильтрации по конкретному домену

Следующий кодовый фрагмент показывает, как фильтровать электронные письма на основе конкретного домена.

Критерии фильтрации по конкретному получателю

Следующий кодовый фрагмент показывает, как фильтровать электронные письма на основе конкретного получателя.

Критерии фильтрации по MessageID

Следующий кодовый фрагмент показывает, как фильтровать электронные письма на основе MessageID.

Критерии фильтрации всех уведомлений о доставке почты

Следующий кодовый фрагмент показывает, как фильтровать электронные письма на основе всех уведомлений о доставке почты.

Фильтрация по размеру сообщения

Построение сложных запросов

Если разные свойства MailQueryBuilder установлены в отдельном выражении, все условия будут выполнены. Например, чтобы получить сообщение в определенном диапазоне дат и от конкретного хоста, напишите три выражения:

Комбинирование запросов с AND

Следующий кодовый фрагмент показывает, как комбинировать запросы с AND.

Комбинирование запросов с OR

MailQueryBuilder предоставляет метод Or(), который принимает два экземпляра MailQuery в качестве параметров. Он получает сообщения, которые соответствуют любому из двух указанных условий. В следующем примере фильтруются сообщения, которые имеют слово “test” в теме или “noreply@host.com” в качестве отправителя. Следующий кодовый фрагмент показывает, как комбинировать запросы с OR.

Фильтрация электронной почты с учетом регистра

Электронные письма можно фильтровать с учетом регистра, указав флаг IgnoreCase в условиях фильтрации, как показано в следующем кодовом фрагменте.

Фильтрация сообщений с поддержкой разделения на страницы