Filtrera meddelanden från Exchange‑brevlåda

Aspose.Email for C++ låter utvecklare filtrera meddelanden i en Exchange-inkorg med hjälp av IEWSClient, MailQuery, och ExchangeQueryBuilder. Du kan filtrera meddelanden efter datum, avsändare, domän, MessageID, leveransaviseringar och många andra kriterier.

För att hämta meddelanden från en mapp för vidare bearbetning, IEWSClient. har följande metoder:

  • ListMessages() - Hämtar alla meddelanden från en brevlåda.
  • ListMessages() overload - Returnerar endast meddelanden som matchar specifika villkor. Den accepterar en MailQuery som definierar filtreringsregler såsom ämnesnyckelord, datumintervall och adressbaserad filtrering.

Filtrera meddelanden med IEWSClient

Följande kodexempel demonstrerar hur du frågar och hämtar specifika e‑postmeddelanden från en Exchange Server med Exchange Web Services (EWS) och Aspose.Email för C++. Det visar hela processen för att ansluta till en Exchange‑server (i detta fall Office 365), bygga en sökfråga för att hitta meddelanden med "Newsletter" i ämnet som kom idag, köra frågan mot inkorgen, hämta de matchande meddelandena och på ett korrekt sätt hantera anslutningens livscykel med felhantering.

  1. Anslut till Exchange‑servern med IEWSClient.
  2. Skapa en MailQuery eller ExchangeQueryBuilder och definiera filtreringsvillkor.
  3. Anropa ListMessages(folderUri, query) för att få de filtrerade resultaten.

Filtrera meddelanden på kriterier

Kodexemplet ovan filtrerar meddelanden baserat på e‑postens ämne och datum. Du kan också filtrera på andra egenskaper. Nedan följer några exempel på hur man ställer in villkoren med hjälp av MailQuery.

Filtrera efter dagens datum

Följande kodexempel visar hur man bygger en fråga för att hitta e‑post som ankommit idag.

Filtrera efter datumintervall

Följande kodexempel visar hur man bygger en fråga för att hitta e‑post som ankommit under de senaste 7 dagarna.

Filtrera efter specifik avsändare

Följande kodexempel visar hur man bygger en fråga för att hitta e‑post från en specifik avsändare.

Filtrera efter domän

Följande kodexempel visar hur man bygger en fråga för att hitta e‑post från en specifik domän.

Filtrera efter mottagare

Följande kodexempel visar hur man bygger en fråga för att hitta e‑post skickad till en specifik mottagare.

Filtrera efter MessageID

Följande kodexempel visar hur man bygger en fråga för att hitta ett specifikt e‑postmeddelande via dess MessageId.

Filtrera leveransaviseringar

Följande kodexempel visar hur man bygger en fråga för att hitta leveransaviseringar (MDN).

Filtrera efter meddelandestorlek

Följande kodexempel visar hur man bygger en fråga för att hitta e‑post som är större än en viss storlek.

Bygg komplexa frågor

När du använder MailQueryBuilder eller ExchangeQueryBuilder, varje egenskap du anger skapar ett filtreringsvillkor. Om dessa villkor definieras i separata satser kombineras de med logisk AND, vilket innebär att alla villkor måste matcha för att ett meddelande ska returneras.

Detta låter utvecklare bygga precisa filter såsom:

  • E‑post inom ett datumintervall
  • E‑post från en specifik domän
  • E‑post som matchar flera kriterier samtidigt

Kombinera frågor med AND

Att använda flera byggaregenskaper i sekvens skapar automatiskt en AND‑operation.

Följande exempel hämtar meddelanden som:

  • Kommer från en specifik domän
  • Ankommit före idag
  • Ankommit under de senaste sju dagarna

Kombinera frågor med OR

För att matcha meddelanden som uppfyller någon av två villkor, använd metoden Or().

Följande exempel hämtar meddelanden som:

  • Innehåller “test” i ämnet, eller
  • Skickades av “noreply@host.com”

Skiftlägeskänslig e‑postfiltrering

Du kan tillämpa skiftlägeskänslig eller skiftlägesokänslig filtrering när du frågar efter meddelanden från en Exchange-inkorg. För att kontrollera detta beteende, använd IgnoreCase‑flaggan som finns i filtreringsmetoderna. Att skicka true möjliggör skiftlägesokänslig matchning.

Exemplet nedan filtrerar meddelanden som:

  • Innehåller ordet "Newsletter" i ämnet (utan hänsyn till skiftläge)
  • Ankommit idag

Paginering i meddelandefiltrering

När du arbetar med stora Exchange-inkorgar möjliggör paginering att hämta meddelanden i mindre, hanterbara batchar. ListMessagesByPage metod för IEWSClient returnerar resultat sida för sida baserat på en angiven sidstorlek och frågekriterier.

Exemplet nedan visar hur man:

  1. Bygg ett filter med hjälp av MailQueryBuilder.
  2. Hämta resultat i sidor.
  3. Loopa igenom alla sidor tills den sista.
  4. Räkna det totala antalet matchande meddelanden.