Филтриране на имейли от пощенски сървър
Филтриране на съобщения по подател, получател или дата
Този Pop3Client клас, описан в Свързване към POP3 сървър, предоставя ListMessages() метод, който получава всички съобщения от пощенска кутия. За да получите само съобщения, отговарящи на някои условия, използвайте претоварения ListMessages() метод, който приема MailQuery като аргумент. MailQuery класът предоставя различни свойства за задаване на условията на заявката, например дата, тема, изпращач, получател и т.н. MailQueryBuilder класът се използва за изграждане на израза за търсене. Първо се задават всички условия и ограничения и след това MailQuery се попълва с заявката, разработена от MailQueryBuilder. The MailQuery класов обект се използва от Pop3Client за извличане на филтрираната информация от сървъра. Тази статия показва как да филтрирате имейл съобщения от пощенска кутия. Първият пример илюстрира филтриране по дата и тема. Също така показваме как да филтрираме по други критерии и как да построим по‑сложни заявки. Тя демонстрира и приложението на филтър за дата и час за извличане на конкретни имейли от кутията. Освен това се показва как да се приложи чувствително към регистъра филтриране.
Филтриране на съобщения от пощенска кутия
За филтриране на съобщения от пощенска кутия:
- Свързване към POP3 сървър.
- Създайте инстанция на MailQuery и задайте желаните свойства.
- Извикайте Pop3Client.ListMessages(MailQuery query) метод и предайте MailQuery в параметри, за да се получат само филтрираните съобщения.
Следният кодов откъс показва как да се свържете с POP3 пощенска кутия и да получите съобщения, които са дошли днес и имат думата „newsletter“ в темата.
Извличане на съобщения по конкретни критерии
Кодовите примери по-горе показва как можете да филтрирате съобщения въз основа на темата и датата на имейла. Можем да използваме и други свойства за задаване на други поддържани условия. По‑долу са някои примери за задаване на условия, използвайки MailQuery.
Следващите кодови откъси показват как да филтрирате имейли по други критерии:
- Намерете имейли, доставени днес.
- Намерете имейли, получени в диапазон.
- Намерете имейли от конкретен изпращач.
- Намерете имейли, изпратени от конкретен домейн.
- Намерете имейли, изпратени до конкретен получател.
Днешна дата
Следният кодов откъс показва как да намерите имейли, доставени днес.
Диапазон от дати
Следният кодов откъс показва как да намерите имейли, получени в определен диапазон.
Конкретен изпращач
Следният кодов откъс показва как да намерите имейли от конкретен изпращач.
Конкретен домейн
Следният кодов откъс показва как да намерите имейли, изпратени от конкретен домейн.
Конкретен получател
Следният кодов откъс показва как да намерите имейли, изпратени до конкретен получател.
Създаване на сложни заявки
Ако различни MailQueryBuilder свойствата се задават в отделни изрази, след което всички условия ще бъдат изпълнени. Например, ако искаме да получим съобщения между даден диапазон от дати и от конкретен хост, трябва да напишем три израза.
Комбиниране на заявки с AND
Следният кодов откъс показва как да комбинирате заявки с AND.
Комбиниране на заявки с OR
MailQueryBuilder предоставя Or() метод, който приема две MailQuery инстанции като параметри. Той получава съобщенията, които отговарят на едно от двете посочени условия. Следният кодов фрагмент показва как да филтрирате съобщения, които имат „test“ в темата или „noreply@host.com“ като подател. Следният кодов фрагмент показва как да комбинирате заявки с OR.
Филтри, чувствителни към регистъра
API‑то също така предоставя възможност за филтриране на имейли от пощенската кутия въз основа на критерий с чувствителност към регистъра. Следните методи предоставят възможност за търсене на имейли, като се задава флаг за чувствителност към регистъра.
- Метод Aspose.Email.StringComparisonField.Contains(string value, bool ignoreCase)
- Метод Aspose.Email.StringComparisonField.Equals(string value, bool ignoreCase)
- Метод Aspose.Email.StringComparisonField.NotContains(string value, bool ignoreCase)
- Метод Aspose.Email.StringComparisonField.NotEquals(string value, bool ignoreCase)