Pour vérifier si un email a bien été relayé ou refusé par vos serveurs exchange il faut aller chercher dans les logs. Quand je parle de logs je parle des journaux emails, pas de logs exchange système (connecteurs, etc).
Voyons comment faire avec Exchange 2016 (ou 2013) en CLI powershell.
PowerShell
Si Exchange 2010 proposait une console graphique (explorateur des journaux de suivi) pour la recherche il faut passer en mode CLI à partir de Exchange 2013 avec Exchange Management Shell.
Depuis l'ID d'un message
Si vous connaissez l'ID d'un message comme il s'agit d'un identifiant unique vous pouvez le rechercher :
$Servers=Get-ExchangeServer; $Servers | where {$_.isHubTransportServer -eq $true -or $_.isMailboxServer -eq $true} | Get-MessageTrackingLog -MessageId b1876b84-0d48-4e10-8af5-0fa74053f383@SRV1.bm.ad | Select-Object Timestamp,ServerHostname,ClientHostname,Source,EventId,Recipients,MessageSubject | Sort-Object -Property Timestamp
Filtre sur l'expéditeur (sender)
Pour filtrer sur l'émetteur d'un email :
$Servers=Get-ExchangeServer; $Servers | where {$_.isHubTransportServer -eq $true -or $_.isMailboxServer -eq $true} | Get-MessageTrackingLog -Sender toto@blogmotion.fr | Select-Object Timestamp,ServerHostname,ClientHostname,Source,EventId,Sender,Recipients,MessageSubject | Sort-Object -Property Timestamp
Filtre sur le destinataire (recipient)
Pour filtrer sur le destinataire d'un email :
$Servers=Get-ExchangeServer; $Servers | where {$_.isHubTransportServer -eq $true -or $_.isMailboxServer -eq $true} | Get-MessageTrackingLog –Recipients toto@blogmotion.fr | Select-Object Timestamp,ServerHostname,ClientHostname,Source,EventId,Sender,Recipients,MessageSubject | Sort-Object -Property Timestamp
Avec wildcard :
$Servers=Get-ExchangeServer; $Servers | where {$_.isHubTransportServer -eq $true -or $_.isMailboxServer -eq $true} | Get-MessageTrackingLog –Recipients *@blogmotion.fr | Select-Object Timestamp,ServerHostname,ClientHostname,Source,EventId,Sender,Recipients,MessageSubject | Sort-Object -Property Timestamp
Filtrage horaire
Au format MM/JJ/AAAA et format horaire 24 : :
$Servers=Get-ExchangeServer; $Servers | where {$_.isHubTransportServer -eq $true -or $_.isMailboxServer -eq $true} | Get-MessageTrackingLog -Recipients toto@blogmotion.fr -Start "05/24/2018 8:00" -End "05/24/2018 22:00" | Select-Object Timestamp,ServerHostname,ClientHostname
Filtre sur l'objet
Pour lister tous les emails contenant *expiration de votre compte* :
$Servers=Get-ExchangeServer; $Servers | where {$_.isHubTransportServer -eq $true -or $_.isMailboxServer -eq $true} | Get-MessageTrackingLog -Recipients toto@blogmotion.fr | where-object {$_.MessageSubject -like "*expiration de votre compte*"} | Select-Object Timestamp,ServerHostname,ClientHostname,Source,Sender,EventId,Recipients,MessageSubject | Sort-Object -Property Timestamp
Filtre SEND / RECEIVE
Il est aussi possible de faire un filtre pour savoir si l'email a été émis (SEND) :
$Servers=Get-ExchangeServer; $Servers | where {$_.isHubTransportServer -eq $true -or $_.isMailboxServer -eq $true} | Get-MessageTrackingLog -Sender toto@blogmotion.fr -Start "05/02/2018 9:00" -End "05/02/2018 10:00" -Eventid SEND | Select-Object Timestamp,ServerHostname,ClientHostname,Source,EventId,Sender,Recipients,MessageSubject | Sort-Object -Property Timestamp
Ou reçu (RECEIVE) :
$Servers=Get-ExchangeServer; $Servers | where {$_.isHubTransportServer -eq $true -or $_.isMailboxServer -eq $true} | Get-MessageTrackingLog -Sender toto@blogmotion.fr -Start "05/02/2018 9:00" -End "05/02/2018 10:00" -Eventid RECEIVE | Select-Object Timestamp,ServerHostname,ClientHostname,Source,EventId,Sender,Recipients,MessageSubject | Sort-Object -Property Timestamp
Conclusion
Pas forcément super pratique, vous pouvez vous faire un script powershell pour faciliter la recherche, avec une petite interface graphique pourquoi pas.
Auteur : Mr Xhark
Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter
2 commentaires
Pour Exchange 2013 j'utilise le script suivant : https://gallery.technet.microsoft.com/office/Exchange-2013-Message-875b3eeb
Il fait super bien le boulot, mais je ne sais pas s'il fonctionne sous 2016 😉
@MalOu: merci, celui que tu indiques ne semble pas compatible mais un autre est disponible (non testé) : https://gallery.technet.microsoft.com/office/Exchange-message-tracking-73a2604c 🙂