有些时候如果我们的终端用户遇到邮件流问题,Exchange 管理员可能会通过消息追踪日志来协助诊断问题。如果你是 Exchange 本地服务器的管理员,你可能会对收集消息追踪日志的方法相当熟悉,即通过 Get-MessageTrackingLog 来做。然后,在 Exchange Online 中,如果你尝试运行 Get-MessageTrackingLog 命令,你可能会惊讶地发现,Exchange Online 中竟然没有这条命令。

遇到这种情况请不要惊慌,先把手机掏出来发条朋友圈,因为在 Exchange Online 中无法运行这条命令是与其现象。根据微软文档的描述,Get-MessageTrackingLog 命令只适用于本地服务器,并不适用于 Exchange Online。

然而没有关系,Exchange Online PowerShell 并非未给您提供收集消息追踪日志的方式,只是我们需要用一种其他的方式来完成收集,方法如下。

连接到 Exchange Online PowerShell,然后运行 Get-MessageTrace 命令,示例如下:

Get-MessageTrace -SenderAddress azure-noreply@microsoft.com | fl

这条命令仅供演示,当然你还可以用其他的参数限定消息追踪日志的收集范围,例如邮件标题。

抄录你需要查看细节的消息追踪日志的消息追踪 ID(注意,不是 Message ID,而是 Message Trace ID,本文以 7e9b9bbb-8ac1-4a42-6b4d-08da06e26c7c 为例)和收件人地址(本文以 qimgao@irabit.org 为例) 。

然后运行以下命令:

Get-MessageTraceDetail -MessageTraceId 7e9b9bbb-8ac1-4a42-6b4d-08da06e26c7c -RecipientAddress qimgao@irabit.org | fl

当然,你也可以简化过程,直接运行这一行命令:

Get-MessageTrace -SenderAddress azure-noreply@microsoft.com -RecipientAddress qimgao@irabit.org | Get-MessageTraceDetail | fl

如果你需要把消息追踪日志导出,你还可以在后面加上导出符号,比如这样:

Get-MessageTrace -SenderAddress azure-noreply@microsoft.com -RecipientAddress qimgao@irabit.org | Get-MessageTraceDetail | fl >C:\Temp\MessageTrace.txt

不用谢。