Nachrichten im Exchange‑Server‑Postfach mit EWS filtern und sortieren
Nachrichten mit EWS filtern und sortieren
Die IEWSClient Schnittstelle bietet die ListMessages() Methode, die alle Nachrichten aus einem Postfach abruft. Um nur Nachrichten zu erhalten, die einer Bedingung entsprechen, verwenden Sie die überladene ListMessages() Methode, die das MailQuery Klasse als Argument. Die MailQuery class bietet verschiedene Eigenschaften zum Festlegen von Bedingungen, zum Beispiel Datum, Betreff, Absender und Empfänger. Zusätzlich erlaubt die API das Anwenden von Groß‑/Kleinschreibung‑Filtern beim Abrufen von E‑Mails aus dem Postfach.
Nachrichten nach Kriterien filtern
Um gefilterte Nachrichten aus einem Postfach zu erhalten:
- Stellen Sie eine Verbindung zum Exchange‑Server her.
- Erstellen Sie eine Instanz von MailQuery und die gewünschten Eigenschaften setzen.
- Rufen Sie die IEWSClient.ListMessages() Methode und übergeben Sie die MailQuery in den Parametern, um nur die gefilterten Nachrichten zu erhalten.
Das folgende Code‑Snippet zeigt, wie Sie sich mit einem IMAP‑Postfach verbinden und Nachrichten abrufen, die den String "Newsletter" im Betreff enthalten und heute gesendet wurden.
Nach heutigem Datum
Das folgende Code‑Snippet zeigt, wie Sie alle E‑Mails anhand des heutigen Datums filtern.
Nach Datumsbereich
Der folgende Codeabschnitt zeigt, wie Sie alle E-Mails nach dem Datumsbereich filtern.
Nach Absender
Der folgende Codeabschnitt zeigt, wie Sie alle E-Mails nach einem bestimmten Absender filtern.
Nach Domäne
Der folgende Codeabschnitt zeigt, wie Sie alle E-Mails nach einer bestimmten Domain filtern.
Nach Empfänger
Der folgende Codeabschnitt zeigt, wie Sie alle E-Mails nach einem bestimmten Empfänger filtern.
Nach Nachrichten‑ID
Der folgende Codeabschnitt zeigt, wie Sie alle E-Mails nach MessageID filtern.
Nach Mail‑Delivery‑Benachrichtigungen
Der folgende Codeabschnitt zeigt, wie Sie alle E-Mails basierend auf allen Zustellungsbenachrichtigungen filtern.
Nach Nachrichtengröße
Komplexe Abfragen erstellen
Falls unterschiedlich MailQueryBuilder Eigenschaften werden in einer separaten Anweisung gesetzt, alle Bedingungen werden erfüllt. Beispiel: Um eine Nachricht in einem bestimmten Datumsbereich und von einem bestimmten Host zu erhalten, schreiben Sie drei Anweisungen:
Abfragen mit AND kombinieren
Das folgende Code‑Snippet zeigt, wie man Abfragen mit AND kombiniert.
Abfragen mit OR kombinieren
MailQueryBuilder stellt die Or() Methode, die zwei MailQuery Instanzen als Parameter. Es werden Nachrichten abgerufen, die einer der beiden angegebenen Bedingungen entsprechen. Das nachstehende Beispiel filtert Nachrichten, die entweder das Wort „test“ im Betreff oder „noreply@host.com“ als Absender haben. Das folgende Code‑Snippet zeigt, wie Abfragen mit OR kombiniert werden.
Fallabhängige E-Mail-Filterung
E‑Mails können nach Groß‑/Kleinschreibung gefiltert werden, indem das Flag IgnoreCase in den Filterkriterien angegeben wird, wie im folgenden Code‑Snippet gezeigt.
Nachrichten mit Seitennavigation filtern
Gefilterte Nachrichten auf- bzw. absteigend sortieren
Die E‑Mail‑Filterung kann mit einer Sortierung der Nachrichten in aufsteigender/absteigender Reihenfolge unterstützt werden. In diesem Fall, OrderBy Die Methode wird verwendet, um die Reihenfolge festzulegen, in der die Ergebnisse einer E‑Mail‑Suche mit der MailQueryBuilder‑Klasse sortiert werden. Mit dieser Methode können Sie Sortierkriterien für eine Suchabfrage definieren und angeben, ob die Ergebnisse anhand einer bestimmten Eigenschaft auf- oder absteigend sortiert werden sollen.
Die Methode akzeptiert den Parameter ascending, der die Sortierreihenfolge für die angegebene Eigenschaft festlegt. Ist der Parameter ascending true, sollen die Suchergebnisse in aufsteigender Reihenfolge sortiert werden. Ist er false, werden die Ergebnisse in absteigender Reihenfolge sortiert.
MailQueryBuilder builder = new MailQueryBuilder();
builder.Subject.Contains("Report");
builder.InternalDate.Since(new DateTime(2020, 1, 1));
builder.Subject.OrderBy(true); // sort the subject ascending
builder.InternalDate.OrderBy(false); // sort the date descending
MailQuery query = builder.GetQuery();
// Get list of messages
ExchangeMessageInfoCollection messages = client.ListMessages(client.MailboxInfo.InboxUri, query, false);
Im obigen Code‑Abschnitt wird die OrderBy‑Methode zweimal angewendet, einmal für den Betreff und einmal für das Datum der E‑Mails. Durch das Ausführen der ListMessages‑Methode mit der übergebenen Anfrage erhalten wir eine Liste von Nachrichten, deren Betreff das Wort "Report" enthält und die am angegebenen Datum oder später empfangen wurden. Gleichzeitig werden die Ergebnisse nach Betreff in aufsteigender Reihenfolge sortiert. Das bedeutet, dass die Nachrichten alphabetisch von A bis Z nach ihrem Betreff sortiert werden. Außerdem werden die Ergebnisse nach Datum in absteigender Reihenfolge sortiert, was bedeutet, dass die Beiträge von neu nach alt angeordnet werden.
Nachrichten mit AQS filtern
Mit Aspose.Email für .NET können Nutzer die leistungsstarken Möglichkeiten der Advanced Query Syntax (AQS) nutzen, um Nachrichten direkt aus einem Exchange‑Postfach zu filtern. AQS bietet ein robustes und intuitives Verfahren zur Erstellung von Abfragen, die E‑Mails anhand spezifischer Kriterien wie Datum, Absender und Betreff gezielt ansprechen können. Für weiterführende Einblicke in die Integration in Ihre E‑Mail‑Filterprozesse sowie umfassende Code‑Beispiele zur Implementierung der Nachrichtenfilterung mit AQS und Aspose.Email für .NET, verweisen wir auf die Nachrichten mit AQS aus dem Exchange‑Postfach filtern Artikel.