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

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

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

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

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

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

В следующем фрагменте кода показано, как подключиться к почтовому ящику IMAP и получать сообщения со строкой «Newsletter» в теме и отправленные сегодня.

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

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

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

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

Диапазон дат критериев фильтрации

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

Критерии фильтрации: конкретный отправитель

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

Критерии фильтрации: конкретный домен

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

Критерии фильтрации: конкретный получатель

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

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

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

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

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

Создание сложных запросов

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

Объединение запросов с AND

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

Объединение запросов с OR

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

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

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