Berichten filteren uit Exchange‑mailbox
Aspose.Email voor C++ stelt ontwikkelaars in staat berichten in een Exchange‑mailbox te filteren met behulp van IEWSClient, MailQuery, and ExchangeQueryBuilderU kunt berichten filteren op datum, afzender, domein, MessageID, bezorgingsmeldingen en vele andere criteria.
Om berichten vanuit een map op te halen voor verdere verwerking, de IEWSClient. heeft de volgende methoden:
- ListMessages() - Haalt alle berichten op van een mailbox.
- ListMessages() overload - Retourneert alleen berichten die voldoen aan specifieke voorwaarden. Het accepteert een MailQuery die filterregels definieert zoals onderwerp‑trefwoorden, datumbereiken en adresgebaseerde filtering.
Berichten filteren met IEWSClient
Het volgende codevoorbeeld toont hoe u specifieke e‑mails kunt opvragen en ophalen van een Exchange Server met behulp van Exchange Web Services (EWS) en Aspose.Email voor C++. Het laat het volledige proces zien van het verbinden met een Exchange‑server (in dit geval Office 365), het opbouwen van een zoekquery om berichten met "Newsletter" in het onderwerp die vandaag zijn aangekomen te vinden, het uitvoeren van de query op de inbox, het ophalen van de overeenkomende berichten, en het correct afhandelen van de verbindingslevenscyclus met foutafhandeling.
- Maak verbinding met de Exchange‑server met behulp van IEWSClient.
- Maak een MailQuery of ExchangeQueryBuilder en definieer filtervoorwaarden.
- Roep ListMessages(folderUri, query) om de gefilterde resultaten te krijgen.
Berichten filteren op criteria
Het bovenstaande codevoorbeeld filtert berichten op basis van het e‑mailonderwerp en de datum. U kunt ook op andere eigenschappen filteren. Hieronder staan enkele voorbeelden van het instellen van de voorwaarden met behulp van MailQuery.
Filter op de datum van vandaag
De volgende codevoorbeelden laten zien hoe u een query opbouwt om e‑mails te vinden die vandaag zijn aangekomen.
Filter op datumbereik
Het volgende codevoorbeeld toont hoe u een query opbouwt om e‑mails te vinden die in de afgelopen 7 dagen zijn aangekomen.
Filter op specifieke afzender
Het volgende codevoorbeeld laat zien hoe u een query opbouwt om e‑mails van een specifieke afzender te vinden.
Filter op domein
Het volgende codevoorbeeld toont hoe u een query opbouwt om e‑mails van een specifiek domein te vinden.
Filter op ontvanger
Het volgende codevoorbeeld laat zien hoe u een query opbouwt om e‑mails te vinden die naar een specifieke ontvanger zijn gestuurd.
Filter op MessageID
Het volgende codevoorbeeld toont hoe u een query opbouwt om een specifieke e‑mail te vinden op basis van zijn MessageId.
Filter Mail Delivery Notifications
Het volgende codevoorbeeld laat zien hoe u een query opbouwt om Mail Delivery Notifications (MDN’s) te vinden.
Filter op berichtgrootte
Het volgende codevoorbeeld toont hoe u een query opbouwt om e‑mails te vinden die groter zijn dan een bepaalde grootte.
Complexe query’s bouwen
Bij gebruik van MailQueryBuilder of ExchangeQueryBuilder, elke eigenschap die u instelt maakt een filtervoorwaarde. Als deze voorwaarden in afzonderlijke statements worden gedefinieerd, worden ze gecombineerd met logische AND, wat betekent dat alle voorwaarden moeten overeenkomen om een bericht terug te krijgen.
Dit stelt ontwikkelaars in staat nauwkeurige filters te bouwen, zoals:
- E‑mails binnen een datumbereik
- E‑mails van een specifiek domein
- E‑mails die gelijktijdig aan meerdere criteria voldoen
Queries combineren met AND
Het gebruik van meerdere builder‑eigenschappen in volgorde creëert automatisch een AND‑operatie.
Het volgende voorbeeld haalt berichten op die:
- Komt van een specifiek domein
- Aangekomen vóór vandaag
- Aangekomen in de afgelopen zeven dagen
Queries combineren met OR
Om berichten te vinden die aan een van twee voorwaarden voldoen, gebruik de Or()‑methode.
Het volgende voorbeeld haalt berichten op die:
- Bevat “test” in het onderwerp, of
- Verzonden door “noreply@host.com”
Hoofdlettergevoelige e-mailfiltering
U kunt hoofdlettergevoelig of niet-gevoelig filteren bij het opvragen van berichten uit een Exchange‑mailbox. Gebruik de IgnoreCase‑vlag in de filtermethoden om dit gedrag te bepalen. De waarde true schakelt niet-gevoelig zoeken in.
Het onderstaande voorbeeld filtert berichten die:
- Bevat het woord "Newsletter" in het onderwerp (niet-hoofdlettergevoelig)
- Aangekomen vandaag
Paginering bij berichtfiltering
Bij het werken met grote Exchange‑mailboxes maakt paginering het mogelijk berichten in kleinere, beheersbare batches op te halen. De ListMessagesByPage methode van IEWSClient geeft resultaten pagina per pagina terug op basis van een opgegeven paginagrootte en querycriteria.
Het onderstaande voorbeeld toont hoe:
- Bouw een filter met MailQueryBuilder.
- Haal resultaten op in pagina’s.
- Loop door alle pagina’s tot de laatste.
- Tel het totale aantal overeenkomende berichten.