Фильтрация сообщений из почтового ящика Exchange с помощью WebDav
Фильтрация сообщений с помощью WebDav
Этот ExchangeClient class предоставляет ListMessages() метод, который получает все сообщения из почтового ящика. Чтобы получить только сообщения, соответствующие определённому условию, используйте перегруженный ListMessages() метод, который принимает MailQuery класс в качестве аргумента. The MailQuery класс предоставляет различные свойства для указания условий, например, дата, тема, отправитель и получатель. Кроме того, API позволяет применять фильтры с учётом регистра при получении писем из почтового ящика.
Фильтрация сообщений
Чтобы получить отфильтрованные сообщения из почтового ящика:
- Подключитесь к серверу Exchange.
- Создайте экземпляр MailQuery и задать нужные свойства.
- Вызвать ExchangeClient.ListMessages() метод и передайте MailQuery в параметрах, чтобы получить только отфильтрованные сообщения.
Следующий фрагмент кода показывает, как подключиться к IMAP‑почтовому ящику и получить сообщения, в теме которых присутствует строка "Newsletter" и которые были отправлены сегодня.
Фильтрация сообщений по критерию
Приведённые выше образцы кода фильтруют сообщения по теме письма и дате. Мы также можем фильтровать по другим свойствам. Ниже приведены некоторые примеры установки условий с использованием MailQuery.
Критерий фильтра: сегодняшняя дата
Следующий фрагмент кода показывает, как отфильтровать все электронные письма на основе текущей даты.
Критерий фильтрации: диапазон дат
Следующий фрагмент кода показывает, как отфильтровать все письма по диапазону дат.
Критерий фильтрации: конкретный отправитель
Следующий фрагмент кода показывает, как отфильтровать все письма по конкретному отправителю.
Критерий фильтрации: конкретный домен
Следующий фрагмент кода показывает, как отфильтровать все письма по конкретному домену.
Критерий фильтрации: конкретный получатель
Следующий фрагмент кода показывает, как отфильтровать все письма по конкретному получателю.
Критерий фильтрации: по MessageID
Следующий фрагмент кода показывает, как отфильтровать все письма по MessageID.
Критерий фильтрации: все уведомления о доставке почты
Следующий фрагмент кода показывает, как отфильтровать все письма на основе всех уведомлений о доставке почты.
Создание сложных запросов
Если разные ExchangeQueryBuilder свойства задаются отдельным оператором, и все условия должны совпасть. Например, чтобы получить сообщение в определённом диапазоне дат и от конкретного хоста, напишите три операторa:
Комбинирование запросов с AND
Следующий фрагмент кода показывает, как комбинировать запросы с помощью AND.
Комбинирование запросов с OR
ExchangeQueryBuilder предоставляет Or() метод, принимающий два MailQueryэкземпляры в качестве параметров. Он получает сообщения, соответствующие любому из двух указанных условий. Пример ниже фильтрует сообщения, у которых в теме присутствует слово «test» или отправитель — «noreply@host.com». Ниже приведён фрагмент кода, показывающий, как объединять запросы с помощью OR.
Фильтрация электронных писем с учетом регистра
Электронные письма могут быть отфильтрованы с учётом регистра, указав флаг IgnoreCase в критериях фильтрации, как показано в следующем фрагменте кода.