So überprüfen Sie den Status gelesener und ungelesener E-Mails in Exchange

Haben Sie sich jemals gefragt, ob Ihre E-Mails tatsächlich gelesen werden, unabhängig davon, ob Lesebestätigungen aktiviert sind oder nicht? Oder möchten Sie einfach nur sichergehen, dass wichtige Nachrichten nicht im Nirwana untergehen? Die Überprüfung des Lesestatus von E-Mails in Exchange-Umgebungen ist nicht so einfach wie das Umlegen eines Schalters, insbesondere wenn Sie dies rückwirkend oder ohne ausschließliche Nutzung von Lesebestätigungen tun möchten. Dieser Leitfaden zeigt Ihnen einige praktische (und etwas umständliche) Methoden, um zu überprüfen, ob E-Mails geöffnet wurden – sowohl lokal als auch in Exchange Online (Microsoft 365).Denn ehrlich gesagt: In der einen Umgebung funktioniert es einigermaßen, in der anderen eher weniger. Aber mit ein paar Befehlen und Tricks können Sie sich viel Grübelei ersparen: „Haben sie die E-Mail wirklich gelesen?“

So verfolgen Sie den Lesestatus von E-Mails in Exchange Server und online

Nachverfolgung des Lesestatus auf einem lokalen Exchange-Server

Wenn Sie einen lokalen Exchange-Server betreiben, ist es nicht allzu schwierig. Zunächst müssen Sie sicherstellen, dass die Leseverfolgung von E-Mails auf Organisationsebene aktiviert ist. Dies beeinflusst, ob der Server protokolliert, ob jemand eine E-Mail öffnet oder nicht. Das lässt sich ganz einfach mit PowerShell erledigen:

Get-OrganizationConfig | Select ReadTrackingEnabled

Es gibt „ true“ Trueoder „ false“ zurück False. Wenn es deaktiviert ist, können Sie es aktivieren – es ist etwas ungewöhnlich, aber die Aktivierung hilft Ihnen zu sehen, ob Nachrichten in den Protokollen gelesen werden:

Set-OrganizationConfig -ReadTrackingEnabled $true

Auf manchen Rechnern liefert dieser Befehl möglicherweise nicht sofort Ergebnisse oder erfordert einen Serverneustart bzw.eine erneute Anmeldung. Sobald er aktiviert ist, werden Lesevorgänge in Ihren Protokollen aufgezeichnet.

Um zu überprüfen, ob eine bestimmte Nachricht gelesen wurde, benötigen Sie die Nachrichten-ID. Anstatt endlose Protokolle zu durchsuchen, öffnen Sie die E-Mail in Outlook, gehen Sie zu „Datei“ > „Eigenschaften“ und sehen Sie sich die Internet-Header an. Suchen Sie nach dem Message-IDHeader. Nach diesem Header filtern Sie Ihre Protokolle.

In PowerShell können Sie die Lesestatus für diese Nachricht abrufen, indem Sie die Protokolle wie folgt filtern:

Get-MessageTrackingLog -Sender [email protected] -MessageID "" -Start (Get-Date).AddDays(-2) | Select-Object Timestamp, Recipients, EventId, MessageSubject, MessageID, Status

Sie erhalten eine CSV-ähnliche Ausgabe, die je nach Status anzeigt, ob die Nachricht als gelesen markiert wurde oder nicht.

Tipp: Für eine umfassende Bereinigung oder einen Bericht können Sie die Daten an Export-Csv weiterleiten. Beachten Sie jedoch: In manchen Umgebungen sind die Lesestatus nicht immer zuverlässig, wenn die Protokollierung deaktiviert ist oder für verschiedene Postfächer individuell deaktiviert wurde. Außerdem werden die Protokolle erst nach der Aktivierung der Protokollierung erstellt – sie gelten also nicht rückwirkend für Nachrichten vor der Aktivierung.

Und falls Sie es etwas eleganter mögen (oder einfach nur die wiederholten Befehle leid sind), finden Sie hier ein GitHub-Skript, das diesen gesamten Prozess in einem Batch-Verfahren ausführt: Get-MessageReadStatusReport.ps1. Es hilft dabei, einen praktischen Bericht zu erstellen.

Überprüfen des Lesestatus in Exchange Online (Microsoft 365)

In der Cloud-Welt wird es etwas komplizierter. Microsoft hat es nicht gerade einfach gemacht, nachträglich festzustellen, ob eine E-Mail geöffnet wurde, insbesondere wenn keine Lesebestätigungen angefordert werden. Trotzdem habe ich versucht, einige PowerShell-Skripte anzupassen, um dies für Exchange Online zu realisieren. Ein grundlegender Ansatz sieht folgendermaßen aus:

Get-EXOMailbox -Properties messageTrackingReadStatusEnabled | Select-Object UserPrincipalName, messageTrackingReadStatusEnabled

Dies prüft lediglich, für welche Postfächer die Lesestatusverfolgung aktiviert ist, was bei geplanten Massenprüfungen hilfreich ist. Die größte Herausforderung besteht jedoch darin, dass die neueren Nachrichtenverfolgungstools von Microsoft, wie z. B.Get-MessageTrace, primär für die Nachverfolgung des Nachrichtenflusses und nicht für die Erfassung einzelner Lesebestätigungen ausgelegt sind. Leider liefert der Befehl Get-MessageTraceDetail in Exchange Online – zumindest noch – nicht den Lesestatus direkt. Das ist etwas ärgerlich, da diese Funktion meines Wissens nach nicht so umfangreich ist wie bei den lokalen Tools.

In der Praxis stoßen Sie also möglicherweise an Ihre Grenzen, es sei denn, der Absender hat ausdrücklich eine Lesebestätigung angefordert, die von Nutzern oft ignoriert oder blockiert wird. Denn natürlich muss Microsoft es unnötig kompliziert machen.

Zusammenfassend lässt sich sagen, dass die direkte Überprüfung des Lesestatus in Exchange Online zwar nicht so zuverlässig ist wie bei lokalen Installationen, die Kombination mit Informationen zum Nutzerverhalten oder E-Mail-Tracking-Tools (wie z. B.Drittanbieter-Lesetrackern oder dem Hinzufügen einer speziellen E-Mail-Adresse in BCC) aber vorerst die einzige Möglichkeit sein könnte.

Ich bin mir nicht sicher, warum es funktioniert, aber… manchmal kann es helfen, die Leseverfolgung für einzelne Postfächer in Outlook oder Outlook Web zu aktivieren, aber das ist ein manueller Prozess und nicht immer narrensicher.

Bonus-Tipp: Wer möchte, kann Tools wie Winhance oder E-Mail-Marketing-Tools von Drittanbietern nutzen, um transparentere Statusberichte zu erhalten, insbesondere für Massen-E-Mail-Kampagnen. Aber das ist ein ganz anderes Thema.

Hoffentlich wirft dies ein Licht darauf, wie man trotz aller seltsamen Einschränkungen herausfinden kann, ob E-Mails tatsächlich geöffnet wurden.