Филтриране на съобщения от 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 пощенски кутии, страницирането ви позволява да извличате съобщения на по-малки, управляеми партиди. ListMessagesByPage метод на IEWSClient връща резултати страница по страница въз основа на зададен размер на страницата и критерии за заявка.

Примерът по-долу показва как да:

  1. Създайте филтър, използвайки MailQueryBuilder.
  2. Извличайте резултатите на страници.
  3. Обхождайте всички страници до последната.
  4. Пребройте общия брой съвпадащи съобщения.