Vermisste E-Mails in Microsoft Exchange nachverfolgen

    E-Mail FehlerZum Alltag des Exchange-Administrators gehört es, zu ana­lysieren, ob der Empfänger eine E-Mail er­halten hat bzw. was mit ihr passiert ist, falls sie nicht zuge­stellt wurde. Bis Exchange 2013 bot die GUI dafür eine eigene Funk­tion, aber seit­her muss der Admin zu diesem Zweck auf Power­Shell zurück­greifen.

    Zugegeben, ein kleines Hilfsmittel gibt es dann in der ECP doch noch, dieses dient aber primär der internen Suche auf dem Exchange-Server selbst. Es ist damit nicht möglich, nach Mails von externen Sendern oder Empfängern zu suchen.

    Um diese Funktion zu nutzen, wechselt man in der Exchange ECP zu Nachrichtenfluss => Zustellberichte.

    Nachrichtenverfolgung für interne Mails mit Hilfe der ECP

    Der Exchange-Administrator kann hier Nachrichten nach verschiedenen Kriterien suchen und sich zu einzelnen Mails ein kleines Log-File anzeigen lassen. Dieses erlaubt ihm, die Zustellung einer Mail von einem internen User zum einem anderen nachzuverfolgen.

    Dieses Szenario kommt gelegentlich vor, wenn ein Anwender meint, eine interne, vermeintlich wichtige E-Mail nicht erhalten zu haben. In den meisten Fällen stellt sich aber heraus, dass der jeweilige User eine Outlook-Regel eingerichtet hat, welche die betreffende Mail zu weit in seine Ordner­struktur wegsortiert hat, so dass er diese selbst nicht wiederfindet.

    Zustellung externer Mails untersuchen

    Will der Exchange-Admin aber sehen, ob eine externe E-Mail eingegangen ist, dann muss er PowerShell bemühen. In Exchange on-Prem kann man das Log für die Nachrichten­verfolgung mit Get-Message­Tracking­Log durchsuchen:

    Get-MessageTrackingLog [-Server <ServerIdentity>] [-ResultSize <Integer> | Unlimited] [-Start <DateTime>] [-End <DateTime>] [-EventId <EventId>] [-InternalMessageId <InternalMessageId>] [-MessageId <MessageId>] [-MessageSubject <Subject>] [-Recipients <RecipientAddress1,RecipientAddress2...>] [-Reference <Reference>] [-Sender <SenderAddress>]

    Wer sich einmal das komplette Log anschauen möchte, kann dies durch den Aufruf des Cmdlets ohne Parameter tun.

    Ausgabe des vollständigen Logs mit Get-MessageTrackingLog

    Das Log an wirkt in dieser Form etwas unübersichtlich und sollte über weitere Parameter eingegrenzt werden, um das gewünschte Ergebnis zu filtern:

    Get-MessageTrackingLog -ResultSize Unlimited -Start "06/17/2021 8:00AM" `
    -End "06/17/2021 5:00PM" -Sender administrator@smartsocke-cloud.de

    Dieser Beispielaufruf schränkt die Log-Einträge auf den 17. Juni 2021 zwischen 8:00 und 17:00 ein und gibt nur Nachrichten aus, die von administrator@smartsocke-cloud.de versandt wurden.

    Die Suche kann man mit dem Parameter Eventid noch weiter verfeinern, zum Beispiel über den Wert FAIL, um den fehl­geschlagenen Versand von E-Mails zu entdecken. Zudem kann man den Sender und Empfänger mit angeben, wenn gerade in großen Organisationen das Log ziemlich umfangreich ausfällt.

    Aufruf von Get-MessageTrackingLog mit Filter für den Zeitraum und den Sender

    Unter EventId sind nun verschiedene Ereignisse zu E-Mails verzeichnet, dies ist in der Regel allerdings nur eine kleine Auswahl. Microsoft bietet hierzu eine vollständige Aufstellung, in der alle Ereignisse und deren Bedeutung aufgelistet sind.

    Insgesamt ist es wichtig, die Suche nach E-Mails mit geeigneten Filtern möglichst weit einzu­schränken, da es ansonsten recht lange Zeit in Anspruch nimmt, bis man die gewünschte Nachricht findet.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    2 Kommentare

    Sebastian sagt:
    2. Juli 2021 - 7:41

    Für die PowerShell Befehle gibt es eine gute GUI von Frankys Web.
    https://www.frankysweb.de/message-tracking-gui/

    Karl Wester-Ebb... sagt:
    6. Juli 2021 - 11:07

    Kann ich bestätigen das Tool ist Gold wert. Danke Sebastian.