Фільтрація повідомлень з поштової скриньки Exchange

Aspose.Email for C++ дозволяє розробникам фільтрувати повідомлення в поштовій скриньці Exchange, використовуючи IEWSClient, MailQuery, та ExchangeQueryBuilder. Ви можете фільтрувати повідомлення за датою, відправником, доменом, MessageID, повідомленнями про доставку та багатьма іншими критеріями.

Щоб отримати повідомлення з папки для подальшої обробки, IEWSClient. має такі методи:

  • ListMessages() - Отримує всі повідомлення з поштової скриньки.
  • ListMessages() перевантаження — Повертає лише повідомлення, що відповідають певним умовам. Приймає MailQuery який визначає правила фільтрації, такі як ключові слова в темі, діапазони дат та фільтрація за адресою.

Фільтрація повідомлень за допомогою IEWSClient

Наступний зразок коду демонструє, як виконувати запит та отримати конкретні електронні листи з Exchange Server, використовуючи Exchange Web Services (EWS) з Aspose.Email для C++. Показано повний процес підключення до сервера Exchange (у даному випадку Office 365), створення пошукового запиту для знаходження повідомлень з темою "Newsletter", які прийшли сьогодні, виконання запиту до вхідних, отримання відповідних повідомлень та правильне управління життєвим циклом підключення з обробкою помилок.

  1. Підключитися до сервера Exchange за допомогою IEWSClient.
  2. Створіть MailQuery або ExchangeQueryBuilder і визначити умови фільтрації.
  3. Викличте ListMessages(folderUri, query) для отримання відфільтрованих результатів.

Фільтрація повідомлень за критерієм

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

Фільтрація за сьогоднішньою датою

Наступний приклад коду демонструє, як скласти запит для знаходження електронних листів, які надійшли сьогодні.

Фільтрація за діапазоном дат

Наступний приклад коду демонструє, як скласти запит для знаходження електронних листів, які надійшли протягом останніх 7 днів.

Фільтрація за конкретним відправником

Наступний приклад коду демонструє, як скласти запит для знаходження листів від конкретного відправника.

Фільтрація за доменом

Наступний приклад коду демонструє, як скласти запит для знаходження листів з конкретного домену.

Фільтрація за отримувачем

Наступний приклад коду демонструє, як скласти запит для знаходження листів, надісланих конкретному отримувачу.

Фільтрація за MessageID

Наступний приклад коду демонструє, як скласти запит для знаходження конкретного листа за його MessageId.

Фільтрація повідомлень про доставку пошти

Наступний приклад коду демонструє, як скласти запит для знаходження повідомлень про доставку пошти (MDN).

Фільтрація за розміром повідомлення

Наступний приклад коду демонструє, як скласти запит для знаходження листів, розмір яких перевищує конкретне значення.

Створення складних запитів

Коли використовується MailQueryBuilder або ExchangeQueryBuilder, кожна встановлена вами властивість створює умову фільтрації. Якщо ці умови визначені окремими інструкціями, вони комбінуються логічним AND, що означає, що всі умови повинні збігатися, щоб повідомлення було повернено.

Це дозволяє розробникам створювати точні фільтри, наприклад:

  • Листи в діапазоні дат
  • Листи з конкретного домену
  • Листи, що одночасно відповідають кільком критеріям

Комбінувати запити за AND

Використання кількох властивостей будівельника послідовно автоматично створює операцію AND.

Наступний приклад отримує повідомлення, які:

  • Надійшли з конкретного домену
  • Надійшли до сьогоднішнього дня
  • Надійшли протягом останніх семи днів

Комбінувати запити за OR

Щоб отримати повідомлення, які задовольняють одну з двох умов, використайте метод Or().

Наступний приклад отримує повідомлення, які:

  • Містять “test” у темі, або
  • Були надіслані з “noreply@host.com”

Фільтрація електронних листів з урахуванням регістру

Ви можете застосовувати чутливе або нечутливе до регістру фільтрування при запиті повідомлень з поштової скриньки Exchange. Щоб керувати цією поведінкою, використайте прапорець IgnoreCase, доступний у методах фільтрування. Передача true вмикає нечутливе до регістру співпадіння.

Нижче наведений приклад фільтрує повідомлення, які:

  • Містять слово "Newsletter" у темі (без урахування регістру)
  • Надійшли сьогодні

Посторінкова навігація у фільтрації повідомлень

При роботі з великими поштовими скриньками Exchange, посторінкове отримання дозволяє отримувати повідомлення меншими, зручними порціями. The ListMessagesByPage метод IEWSClient повертає результати посторінково на основі вказаного розміру сторінки та критеріїв запиту.

Нижче наведений приклад демонструє, як:

  1. Створіть фільтр за допомогою MailQueryBuilder.
  2. Отримуйте результати посторінково.
  3. Переберіть усі сторінки до останньої.
  4. Підрахуйте загальну кількість відповідних повідомлень.