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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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