Exchange 2013 中的管道跟踪

适用于:Exchange Server 2013

管道跟踪在邮箱服务器上的传输服务、邮箱服务器上的邮箱传输传递服务和边缘传输服务器中移动时捕获来自特定发件人的电子邮件副本。 管道跟踪捕获有关每个传输代理应用于消息快照文件中传输管道中的消息的更改的详细信息。 通过检查消息快照文件的内容,可以确定传输代理是否已将更改应用到预期的传输管道中的消息。 如果要对问题进行故障排除,则应确定哪个传输代理有故障。 然后,可以将故障排除工作集中在该代理上,以解决问题。 然后,可以再次查看消息快照文件,以验证解决方案是否成功。

警告

  • 管道跟踪将复制从发件人的电子邮件地址发送的电子邮件的完整内容。 若要避免机密信息的意外泄露,需要对管道跟踪文件夹设置适当的安全权限。
  • 不要长时间启用管道跟踪。 管道跟踪创建可快速累积的文件。 启用管道跟踪时,要始终监视可用磁盘空间。

配置管道跟踪

在启用管道跟踪之前,需要指定要监视的发件人的电子邮件地址。 管道跟踪旨在记录从特定电子邮件地址发送的消息。 发件人的电子邮件地址可以是 Exchange 组织的内部地址或外部地址。 或者,可以为指定的邮箱或边缘传输服务器上的传输服务生成的系统邮件启用管道跟踪,例如自动答复、传递状态通知 (DSN) 邮件、日记报告和其他系统生成的邮件。还可以修改管道跟踪文件夹的位置。

下表汇总了用于配置管道跟踪的参数:

Cmdlet 参数 默认值 描述
Set-TransportService

Set-MailboxTransportService

PipelineTracingSenderAddress 空白 ($null) 指定要监视的发件人电子邮件地址。

指定值“”<>以监视服务器上指定的传输服务发送的系统生成的消息。

Set-TransportService

Set-MailboxTransportService

PipelineTracingPath 传输服务%ExchangeInstallPath%TransportRoles\Logs\Hub\PipelineTracing

邮箱传输服务%ExchangeInstallPath%TransportRoles\Logs\Mailbox\PipelineTracing

路径必须位于本地服务器上。 不支持 UNC 路径。

指定的路径包含 MessageSnapshots 存储管道跟踪文件的文件夹。

Set-TransportService

Set-MailboxTransportService

PipelineTracingEnabled $false 在您配置要监视的发件人地址后,只能为服务器上的指定传输服务启用管道跟踪。

有关如何启用管道跟踪和配置管道跟踪的发件人地址的详细信息,请参阅配置管道跟踪

邮件快照文件

邮件快照是捕获传输服务或邮箱传输传递服务中的传输代理对邮件所做的任何更改的文件。 这些文件存储在 MessageSnapshots 传输服务的相应管道跟踪路径中的 文件夹中。

MessageSnapshots 文件夹中,Exchange 为流经指定传输服务的受监视发件人发送的每封邮件创建一个文件夹。 每个文件夹都以分配给邮件的 GUID 命名。 如果在同一邮箱服务器上为传输服务和邮箱传输服务启用管道跟踪,则每个传输服务会向同一邮件分配不同的 GUID,因此传输服务文件夹中邮件 MessageSnapshots 的文件夹名称与邮箱传输服务文件夹中同一邮件 MessageSnapshots 的文件夹名称不同。 如果在多个 Exchange 服务器上启用管道跟踪,则会向同一邮件分配不同的 GUID,因为它通过每个 Exchange 服务器上的指定传输服务。

在每个邮件文件夹中,Exchange 会创建多个扩展名为 .eml 的邮件快照文件。 这些邮件快照文件包含邮件在遇到每个 SMTP 事件和传输代理时的内容。

如果在 SMTP 事件上注册了传输代理,Exchange 会在邮件遇到任何传输代理之前创建邮件的邮件快照。 这会在消息遇到在该事件上注册的传输代理之前提供消息的副本。 然后,无论传输代理是否修改消息的内容,都会为消息遇到的每个传输代理创建新的消息快照。 但是,如果没有在事件上注册代理,Exchange 不会为该事件创建任何消息快照。

例如,如果在 OnEndofData 事件上注册了三个代理,但只有两个传输代理修改了一条消息,则会创建四个消息快照。 在针对该事件注册的传输代理进行任何修改之前,第一个消息快照捕获消息时遇到 OnEndofData 事件。 然后,无论传输代理是否修改消息,都会为每个传输代理创建一个消息快照。

以下列表介绍了所创建的邮件快照文件:

  • Original.eml:此文件在遇到任何 SMTP 事件或传输代理之前包含电子邮件的原始未修改内容。

  • Routingnnnn.eml:这些文件包含电子邮件的内容,因为它遇到传输 SMTP 事件和传输代理注册在这些事件在传输服务的分类部分。 占位符 nnnn 表示以 开头的 0001整数值。 对于在这些事件上注册的每个 SMTP 事件和传输代理,值将按事件和代理对邮件进行操作的顺序递增。 邮箱传输传递服务不会生成这些 路由 快照文件。

  • SmtpReceivennnn.eml:这些文件包含电子邮件在传输服务接收部分或邮箱传输传递服务期间遇到 OnEndofDataOnEndOfHeaders SMTP 事件以及在这些事件上注册的传输代理的内容。 占位符 nnnn 表示以 开头的 0001整数值。 对于在这些事件上注册的每个 SMTP 事件和传输代理,值将按事件和代理对邮件进行操作的顺序递增。

可以使用文本编辑器(如记事本)打开邮件快照文件。

每个邮件快照文件都以添加到邮件内容的标头开头,并列出与邮件快照文件相关的 SMTP 事件和传输代理。 这些标头以 X-CreatedBy: MessageSnapshot-Begin injected headers 开头,以 X-EndOfInjectedXHeaders: MessageSnapshot-End injected headers结尾。 每个邮件快照文件中的这些标头将替换为每个后续传输代理和 SMTP 事件。 下面是添加到电子邮件文件的标头的示例:

X-CreatedBy: MessageSnapshot-Begin injected headers
X-MessageSnapshot-UTC-Time: 2013-01-23T23:20:18.138Z
X-MessageSnapshot-Record-Id: 21474836486
X-MessageSnapshot-Source: OnSubmittedMessageX-Sender: michelle@nwtraders.com
X-Receiver: chris@contoso.com
X-EndOfInjectedXHeaders: MessageSnapshot-End injected headers

在消息快照标头之后,文件包含消息的内容,包括所有原始消息标头。 如果传输代理修改了消息的内容,则更改将显示与消息集成。 当消息由每个传输代理处理时,每个代理所做的更改将应用于消息内容。 如果传输代理未对消息内容进行更改,则由该代理创建的消息快照将与上一个传输代理创建的消息快照相同。