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