Nachrichten aus Exchange‑Postfach filtern

Aspose.Email für C++ ermöglicht Entwicklern, Nachrichten in einem Exchange-Postfach zu filtern mithilfe von IEWSClient, MailQuery, und ExchangeQueryBuilder. Sie können Nachrichten nach Datum, Absender, Domain, MessageID, Lieferbenachrichtigungen und vielen anderen Kriterien filtern.

Um Nachrichten aus einem Ordner für die weitere Verarbeitung abzurufen, das IEWSClient. hat die folgenden Methoden:

  • ListMessages() - Ruft alle Nachrichten aus einem Postfach ab.
  • ListMessages() Überladung – Gibt nur Nachrichten zurück, die bestimmten Bedingungen entsprechen. Sie akzeptiert ein MailQuery die Filterregeln wie Betreff‑Stichwörter, Datumsbereiche und adressbasierte Filter definiert.

Nachrichten mit IEWSClient filtern

Das folgende Code‑Beispiel zeigt, wie man mithilfe von Exchange Web Services (EWS) und Aspose.Email für C++ spezifische E‑Mails von einem Exchange‑Server abfragt und abruft. Es demonstriert den gesamten Vorgang: Verbindung zu einem Exchange‑Server (in diesem Fall Office 365) herstellen, eine Suchabfrage erstellen, um Nachrichten mit dem Betreff „Newsletter“ zu finden, die heute eingegangen sind, die Abfrage im Posteingang ausführen, die passenden Nachrichten abrufen und den Verbindungslebenszyklus samt Fehlerbehandlung korrekt handhaben.

  1. Verbindung zum Exchange‑Server herstellen mit IEWSClient.
  2. Erstellen Sie ein MailQuery oder ExchangeQueryBuilder und Filterbedingungen definieren.
  3. Rufen Sie ListMessages(folderUri, query) um die gefilterten Ergebnisse zu erhalten.

Nachrichten nach Kriterien filtern

Das obige Codebeispiel filtert Nachrichten basierend auf dem Betreff und dem Datum der E‑Mail. Sie können auch nach anderen Eigenschaften filtern. Im Folgenden finden Sie Beispiele für das Festlegen der Bedingungen mit MailQuery.

Nach heutigem Datum filtern

Das folgende Codebeispiel zeigt, wie man eine Abfrage erstellt, um E‑Mails zu finden, die heute eingegangen sind.

Nach Datumsbereich filtern

Das folgende Codebeispiel zeigt, wie man eine Abfrage erstellt, um E‑Mails zu finden, die in den letzten 7 Tagen eingegangen sind.

Nach bestimmtem Absender filtern

Das folgende Codebeispiel zeigt, wie man eine Abfrage erstellt, um E‑Mails von einem bestimmten Absender zu finden.

Nach Domain filtern

Das folgende Codebeispiel zeigt, wie man eine Abfrage erstellt, um E‑Mails von einer bestimmten Domain zu finden.

Nach Empfänger filtern

Das folgende Codebeispiel zeigt, wie man eine Abfrage erstellt, um E‑Mails zu finden, die an einen bestimmten Empfänger gesendet wurden.

Nach MessageID filtern

Das folgende Codebeispiel zeigt, wie man eine Abfrage erstellt, um eine bestimmte E‑Mail anhand ihrer MessageId zu finden.

Mail Delivery Notifications filtern

Das folgende Codebeispiel zeigt, wie man eine Abfrage erstellt, um Mail Delivery Notifications (MDNs) zu finden.

Nach Nachrichtengröße filtern

Das folgende Codebeispiel zeigt, wie man eine Abfrage erstellt, um E‑Mails zu finden, die größer als eine bestimmte Größe sind.

Komplexe Abfragen erstellen

Beim Verwenden von MailQueryBuilder oder ExchangeQueryBuilder, jede von Ihnen gesetzte Eigenschaft erzeugt eine Filterbedingung. Wenn diese Bedingungen in separaten Anweisungen definiert werden, werden sie mit logischem UND kombiniert, d.h. alle Bedingungen müssen zutreffen, damit eine Nachricht zurückgegeben wird.

Damit können Entwickler präzise Filter erstellen, wie zum Beispiel:

  • E‑Mails innerhalb eines Datumsbereichs
  • E‑Mails von einer bestimmten Domain
  • E‑Mails, die mehrere Kriterien gleichzeitig erfüllen

Abfragen mit AND kombinieren

Durch die sequenzielle Verwendung mehrerer Builder‑Eigenschaften wird automatisch eine UND‑Operation erzeugt.

Das folgende Beispiel ruft Nachrichten ab, die:

  • Von einer bestimmten Domain stammen
  • Vor dem heutigen Tag eingegangen
  • In den letzten sieben Tagen eingegangen

Abfragen mit OR kombinieren

Um Nachrichten zu erhalten, die eine von zwei Bedingungen erfüllen, verwenden Sie die Or()‑Methode.

Das folgende Beispiel holt Nachrichten, die:

  • Enthalten “test” im Betreff, oder
  • Gesendet von “noreply@host.com”

Fallabhängige E-Mail-Filterung

Sie können bei der Abfrage von Nachrichten aus einem Exchange-Postfach eine case‑sensitive oder case‑insensitive Filterung anwenden. Um dieses Verhalten zu steuern, verwenden Sie das IgnoreCase‑Flag, das in den Filtermethoden verfügbar ist. Der Wert true aktiviert die case‑insensitive Übereinstimmung.

Das folgende Beispiel filtert Nachrichten, die:

  • Den Begriff "Newsletter" im Betreff enthalten (Groß-/Kleinschreibung ignorierend)
  • Heute eingegangen

Paginierung bei Nachrichtenfilterung

Bei der Arbeit mit großen Exchange-Postfächern ermöglicht das Paging das Abrufen von Nachrichten in kleineren, handhabbaren Stapeln. Das ListMessagesByPage Methode von IEWSClient liefert Ergebnisse seitenweise basierend auf einer angegebenen Seitengröße und Abfragekriterien.

Das folgende Beispiel zeigt, wie man:

  1. Einen Filter erstellen mit MailQueryBuilder.
  2. Ergebnisse seitenweise abrufen.
  3. Durchlaufen Sie alle Seiten bis zur letzten.
  4. Zählen Sie die Gesamtzahl der übereinstimmenden Nachrichten.