Hoe controleer je de lees- en ongelezenstatus van e-mails in Exchange?

Heb je wel eens het gevoel gehad dat je e-mails niet echt gelezen worden, ongeacht of leesbevestigingen zijn ingeschakeld of niet? Of wil je gewoon concreet bewijs dat belangrijke berichten niet verloren gaan in de vergetelheid? Het bijhouden van de leesstatus van e-mails in Exchange-omgevingen is niet zo eenvoudig als een schakelaar omzetten, vooral niet als je dit achteraf wilt doen of zonder uitsluitend op leesbevestigingen te vertrouwen. Deze handleiding beschrijft een aantal praktische (en soms wat ruwe) manieren om te controleren of e-mails zijn geopend, zowel on-premises als in Exchange Online (Microsoft 365).Want eerlijk gezegd, in de ene configuratie werkt het wel, en in de andere…niet zo best. Maar goed, met een paar commando’s en trucjes kun je jezelf een hoop gepieker besparen over de vraag: “Hebben ze het echt gelezen?”

Hoe u de leesstatus van e-mails kunt volgen in Exchange Server en Exchange Online.

Het bijhouden van de leesstatus in een on-premises Exchange-server.

Als je een Exchange Server on-premises gebruikt, valt het mee. Je moet er eerst voor zorgen dat het bijhouden van gelezen e-mails is ingeschakeld op organisatieniveau. Dit bepaalt of de server registreert of iemand een e-mail opent of niet. Je kunt dit heel eenvoudig doen via PowerShell:

Get-OrganizationConfig | Select ReadTrackingEnabled

Het retourneert Trueof False. Als het uitgeschakeld is, ja, dan kun je het inschakelen – het is een beetje vreemd, maar door dit in te schakelen kun je zien of berichten in de logboeken worden gelezen:

Set-OrganizationConfig -ReadTrackingEnabled $true

Op sommige machines worden bij deze opdracht mogelijk niet direct resultaten weergegeven of is een herstart van de server of een nieuwe aanmelding vereist. Wanneer deze functie is ingeschakeld, worden leesactiviteiten in uw logboeken vastgelegd.

Als je wilt controleren of een specifiek bericht is gelezen, heb je de bericht-ID nodig. In plaats van eindeloos door logboeken te spitten, kun je dit gemakkelijker doen door de e-mail in Outlook te openen, naar Bestand > Eigenschappen te gaan en de internetheaders te bekijken. Zoek naar de Message-IDheader. Dit is de header waarop je je logboeken kunt filteren.

In PowerShell kunt u de leesstatus van dat bericht achterhalen door logboeken als volgt te filteren:

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

Dit levert een CSV-achtige uitvoer op die laat zien of het bericht als gelezen is gemarkeerd of niet, afhankelijk van de status.

Tip: Voor een grote opruimactie of rapportage kunt u dit doorsturen naar Export-Csv. Maar let op: in sommige implementaties zijn leesstatussen niet altijd betrouwbaar als tracking is uitgeschakeld of als verschillende mailboxen dit afzonderlijk hebben uitgeschakeld. Houd er ook rekening mee dat deze logs alleen worden bijgehouden nadat u tracking hebt ingeschakeld, dus ze zijn niet van toepassing op berichten van vóór de activering.

En als je het wat geavanceerder wilt aanpakken (of gewoon genoeg hebt van herhaalde commando’s), is hier een GitHub-script dat dit hele proces in batches uitvoert: Get-MessageReadStatusReport.ps1. Het helpt bij het genereren van een praktisch rapport.

De leesstatus controleren in Exchange Online (Microsoft 365)

In de cloudwereld wordt het wat ingewikkelder. Microsoft heeft het niet echt makkelijk gemaakt om achteraf te zien of een e-mail is geopend, vooral als er geen leesbevestigingen zijn aangevraagd. Toch heb ik geprobeerd een aantal PowerShell-scripts aan te passen om dit voor Exchange Online te doen. Een basisaanpak ziet er als volgt uit:

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

Deze functie controleert alleen welke postvakken leesstatusregistratie hebben ingeschakeld, wat handig is als u bulkcontroles plant. De grootste uitdaging is echter dat de nieuwere tools voor berichttracering van Microsoft, zoals Get-MessageTrace en soortgelijke functies, voornamelijk zijn ontworpen om de berichtenstroom te traceren, niet om individuele leesbevestigingen te controleren. Helaas geeft de opdracht Get-MessageTraceDetail in Exchange Online u (nog) niet de lees-/ongelezenstatus. Dat is best frustrerend, want voor zover ik weet is de functionaliteit niet zo uitgebreid als bij de on-premise tools.

In de praktijk zul je dus merken dat je beperkt bent, tenzij de afzender expliciet om een ​​leesbevestiging heeft gevraagd, wat gebruikers vaak negeren of blokkeren. Want Microsoft moet het natuurlijk ingewikkelder maken dan nodig is.

Al met al is het rechtstreeks controleren van de leesstatus in Exchange Online weliswaar niet zo robuust als in on-premise omgevingen, maar de combinatie met informatie over gebruikersgedrag of tools voor het volgen van e-mails (zoals externe tools voor het bijhouden van leesstatus of het toevoegen van een speciaal e-mailadres aan de BCC) is wellicht voorlopig de enige oplossing.

Ik weet niet zeker waarom het werkt, maar…soms kan het inschakelen van leesregistratie voor individuele postvakken in Outlook of Outlook Web helpen, maar dat is een handmatig proces en niet altijd waterdicht.

Bonustip: Als je er zin in hebt, kunnen tools zoals Winhance of externe e-mailmarketingtools statusrapporten leveren die meer transparantie bieden, vooral voor bulk-e-mailcampagnes. Maar dat is weer een heel ander verhaal.

Hopelijk biedt dit wat meer duidelijkheid over hoe je kunt achterhalen of e-mails daadwerkelijk zijn geopend, ondanks alle vreemde beperkingen.