Exchange 中的邮件跟踪

适用于:Exchange Server 2013

在 Microsoft Exchange Server 2013 中,邮件跟踪日志详细记录了邮件从邮箱服务器上的传输服务、邮箱服务器上的邮箱和边缘传输服务器来回传输产生的所有邮件活动。 可以使用邮件跟踪日志进行邮件取证、邮件流分析、报告和故障排除。

在 Exchange 2013 中,可以使用 Set-TransportService cmdlet 或 Set-MailboxServer cmdlet 执行所有的邮件跟踪配置任务,因为 Exchange 2013 邮箱服务器会保留传输服务和邮箱。 可以使用这两个 cmdlet 中的任何一个进行下列邮件跟踪配置更改:

  • 启用或禁用邮件跟踪。 默认为启用。
  • 指定邮件跟踪日志文件的位置。
  • 指定个人邮件跟踪日志文件的最大大小。 默认为 10 MB。
  • 指定包含邮件跟踪日志文件的目录的最大大小:默认为 1000 MB。
  • 指定邮件跟踪日志文件的最长期限:默认为 30 天。
  • 启用或禁用邮件跟踪日志中的邮件主题日志记录。 默认为启用。

注意

您也可以使用 Exchange 管理中心 (EAC) 来启用或禁用邮件跟踪,并指定邮件跟踪日志文件的位置。

默认情况下,Exchange 使用循环日志记录根据文件大小和文件期限对邮件跟踪日志进行限制,以帮助控制邮件跟踪日志文件所使用的硬盘空间。

搜索邮件跟踪日志

邮件跟踪日志包含邮件在 Exchange 2013 邮箱服务器中移动时产生的大量数据。 对于搜索邮件跟踪日志,有几个不同的选择。

  • Get-MessageTrackingLog:管理员可以使用此 cmdlet 在邮件跟踪日志中搜索有关使用各种筛选条件的邮件的信息。 有关详细信息,请参阅 搜索邮件跟踪日志

  • 管理员的传递报告:管理员可以使用 Exchange 管理中心的“ 传递报告 ”选项卡 (EAC) 或基础 Search-MessageTrackingReportGet-MesageTrackingReport cmdlet,在邮件跟踪日志中搜索有关组织中特定邮箱发送或接收的邮件的信息。 有关详细信息,请参阅 管理员的送达报告

邮件跟踪日志文件的结构

默认情况下,邮件跟踪日志文件位于 %ExchangeInstallPath%TransportRoles\Logs\MessageTracking。

邮件跟踪日志目录中日志文件的命名约定是 MSGTRKyyyymmdd-nnnn.logMSGTRKMAyyyymmdd-nnnn.logMSGTRKMDyyyymmdd-nnnn.logMSGTRKMSyyyymmdd-nnnn.log。 下列服务使用不同的日志:

  • MSGTRK:这些日志与传输服务相关联。
  • MSGTRKMA:这些日志与中等传输所使用的审批和拒绝相关联。 有关详细信息,请参阅管理邮件审批
  • MSGTRKMD:这些日志与邮箱传输传递服务传递到邮箱的邮件相关联。
  • MSGTRKMS:这些日志与邮箱传输提交服务从邮箱发送的邮件相关联。

日志文件名称中的占位符代表以下信息:

  • 占位符 yyyymmdd 是协调世界时 (UTC) 创建日志文件的日期。 yyyy = year, mm = month, dd = day。
  • 占位符 nnnn 是一个实例编号,对于每个邮件跟踪日志文件名称前缀,其值从每天 1 开始。

信息写入到每个日志文件中,直到文件大小达到其指定的最大值。 然后打开具有递增实例编号的新日志文件。 此过程在全天重复进行。 当满足以下任一条件时,日志文件轮换功能将删除最旧的日志文件:

  • 日志文件达到其指定的最长期限。

  • 邮件跟踪日志目录达到其指定最大大小。

    重要

    邮件跟踪日志目录的最大大小按以下方法计算:将具有相同名称前缀的所有日志文件的大小相加,求其总和。 在计算总目录大小时,不会将其他未遵循名称前缀约定的文件计算在内。 重命名旧日志文件或将其他文件复制到邮件跟踪日志目录可能会导致目录超出指定的最大大小。

    在 Exchange 2013 邮箱服务器上,邮件跟踪日志目录的最大大小是指定值的三倍。 虽然由这四个不同服务生成的邮件跟踪日志文件有四个不同的名称前缀,但是与另外三个日志文件前缀相比,写入 MSGTRKMA 日志文件的数据量和数据频率几乎可以忽略不计。

邮件跟踪日志文件是文本文件,其中包含逗号分隔值 (CSV) 格式的数据。 每个邮件跟踪日志文件的文件头都包含下列信息:

  • #Software::创建消息跟踪日志文件的软件的名称。 通常情况下,此值是 Microsoft Exchange Server。

  • #Version::创建消息跟踪日志文件的软件的版本号。 当前值为 15.0.0.0。

  • #Log类型::日志类型值,即消息跟踪日志。

  • #Date::创建日志文件时的 UTC 日期时间。 UTC 日期时间以 ISO 8601 日期时间格式表示: yyyy-mm-ddThh:mm:ss.fffZ, 其中 yyyy = year, mm = month, dd = day,T 指示时间分量开头, hh = 小时, mm = 分钟, ss = 秒, fff = 秒的分数,Z 表示 Zulu,这是表示 UTC 的另一种方法。

  • #Fields::消息跟踪日志文件中使用的逗号分隔字段名称。

邮件跟踪日志文件中的字段

邮件跟踪日志将每个邮件事件存储在日志中的一行上。 邮件事件信息由字段组织,这些字段由逗号分隔。 通常,字段名是描述性的,足以确定其包含的信息的类型。 但是,某些字段可能为空,或是存储在字段中的信息类型可能会随邮件事件类型和记录事件的邮件跟踪日志文件类型的变化而发生变化。 下表对用于分类各邮件跟踪事件的字段进行了一般性说明。

字段名 说明
date-time 邮件跟踪事件的 UTC 日期-时间。 UTC 日期时间以 ISO 8601 日期时间格式表示: yyyy-mm-ddThh:mm:ss.fffZ, 其中 yyyy = year, mm = month, dd = day, T 指示时间分量开头, hh = 小时, mm = 分钟, ss = second, fff = 分数秒,Z 表示 Zulu,这是表示 UTC 的另一种方法。
client-ip 提交邮件的消息服务器或消息客户端的 IPv4 或 IPv6 地址。
客户端主机名 提交邮件的消息服务器或消息客户端的主机名或 FQDN。
server-ip 源或目标 Exchange 服务器的 IPv4 或 IPv6 地址。
server-hostname 目标服务器的主机名或 FQDN。
source-context source 字段相关联的额外信息。 例如,传输代理信息。
connector-id 源发送连接器或接收连接器或者目标发送连接器或接收连接器的名称。 例如 ,ServerName\ConnectorNameConnectorName
负责邮件跟踪事件的 Exchange 传输组件。 本主题后面的邮件跟踪日志中的源值部分会对该字段中的值进行介绍。
event-id 邮件事件类型。 本主题后面的邮件跟踪日志中的事件类型部分会对事件类型进行介绍。
internal-message-id 由当前正在处理邮件的 Exchange 服务器所分配的邮件标识符。

在涉及邮件传输的每个 Exchange 服务器的邮件跟踪日志中,特定邮件的 internal-message-id 值是各不相同的。 示例值为 73014444033
message-id 邮件头中 Message-Id: 头字段的值。 如果 Message-Id: 头字段不存在或为空,则为其分配一个任意值。 该值在邮件生存期内是常量。 对于在 Exchange 中创建的邮件,该值的格式 <GUID@ServerFQDN>为 ,包括尖括号 (< >) 。 例如,<4867a3d78a50438bad95c0f6d072fca5@mailbox01.contoso.com>。 其他邮件系统可能使用不同的语法或值。
network-message-id 唯一的邮件 ID 值,因拆分或通讯组扩展而创建,且在各邮件副本中均保持有效。 示例值为 1341ac7b13fb42ab4d4408cf7f55890f
recipient-address 邮件收件人的电子邮件地址。 多个电子邮件地址通过分号字符 (;) 分隔。
recipient-status 该字段包含由分号字符 (;) 分隔的各收件人状态。 收件人状态值的显示顺序与 recipient-address 字段中的值相同。 示例状态值包括 250 2.1.5 Recipient OK550 4.4.7 QUEUE.Expired;<ErrorText>
total-bytes 包括附件的邮件的大小,以字节为单位。
recipient-count 邮件中的收件人数。
related-recipient-address 该字段与 EXPANDREDIRECTRESOLVE 事件一起使用来显示与邮件相关联的其他收件人电子邮件地址。
reference 该字段包含特定类型事件的其他信息。 例如:

DSN:包含报告链接,这是关联传递状态通知 (DSN) 如果在此事件之后生成 DSN 的消息 ID 值。 如果这是 DSN 邮件, Reference 字段则包含生成该 DSN 的原始邮件的 Message-Id 值。

EXPAND:“引用”字段包含相关邮件的 related-recipient-address 值。

RECEIVE:如果邮件是由其他进程(例如日记或收件箱规则)生成的,则“引用”字段可能包含相关邮件的 “邮件 ID ”值。

SEND:“引用”字段包含任何 DSN 消息的内部消息 ID 值。

THROTTLE:“引用”字段包含消息被限制的原因。

TRANSFER:“引用”字段包含正在分叉的消息的内部消息 ID。

对于由收件箱规则生成的邮件, Reference 字段包含使收件箱规则生成出站邮件的入站邮件的 Internal-Message-Id 值。

对于其他类型的事件, Reference 字段可能包含分支邮件的 Internal-Message-Id 值。

对于其他类型的事件, Reference 字段通常为空。
message-subject 邮件的主题在 Subject: 标头字段中找到。 邮件主题的跟踪由 Set-TransportServiceSet-MailboxServer cmdlet 中的 MessageTrackingLogSubjectLoggingEnabled 参数控制。 默认情况下,启用邮件主题跟踪。
sender-address 标题字段中指定Sender:的电子邮件地址,如果Sender:不存在,From:则为标题字段。
return-path 邮件信封中指定的寄信人电子邮件地址 MAIL FROM: 。 虽然此字段从不为空,但它可以将 null 发件人地址值表示为 <>
message-info 有关该邮件的其他信息。 例如:
  • DELIVERSEND 事件的邮件起始 UTC 日期-时间。 起始日期-时间是邮件第一次传入 Exchange 组织的时间。 UTC 日期时间以 ISO 8601 日期时间格式表示: yyyy-mm-ddThh:mm:ss.fffZ, 其中 yyyy = year, mm = month, dd = day, T 指示时间分量开头, hh = 小时, mm = 分钟, ss = second, fff = 分数秒,Z 表示 Zulu,这是表示 UTC 的另一种方法。
  • 身份验证错误。 例如,在发生身份验证错误时,可能会看到使用的值 11a 和身份验证类型。
方向性 邮件的方向。 示例值包括 IncomingUndefinedOriginating
tenant-id 该字段不可用于内部部署 Exchange 2013 组织。
original-client-ip 原始客户端的 IPv4 或 IPv6 地址。
original-server-ip 原始服务器的 IPv4 或 IPv6 地址。
custom-data 该字段包含与特定事件类型相关的数据。 例如,传输规则代理使用该字段对在邮件上执行的传输规则或 DLP 策略的 GUID 进行记录。 有关这些传输规则代理值的详细信息,请参阅 查看 DLP 策略检测报告 主题中的“数据日志记录”部分。

邮件跟踪日志中的事件类型

event-id 字段中的各种事件类型可用来对邮件跟踪日志中的邮件事件进行分类。 一些邮件事件只出现在一种类型的邮件跟踪日志文件中,还有一些邮件事件存在于所有类型的邮件跟踪日志文件中。 下表介绍了用于对各邮件事件进行分类的事件类型。

事件名称 说明
AGENTINFO 传输代理使用该事件记录自定义数据。
BADMAIL 分拣目录或重播目录提交的邮件无法传递或返回。
DEFER 邮件传递延迟。
DELIVER 邮件已传递至本地邮箱。
DROP 在不提供传递状态通知(亦称为 DSN、退回邮件、未送达报告或 NDR)的情况下删除了一条消息。 例如:
  • 已完成裁决审批请求邮件。
  • 在不提供 NDR 的情况下悄悄丢弃的垃圾邮件。
DSN 已生成发送状态通知 (DSN)。
DUPLICATEDELIVER 向收件人传递重复邮件。 如果收件人是多个嵌套通讯组的成员,则可能会发生复制邮件情况。 信息存储将检测并删除重复邮件。
DUPLICATEEXPAND 在通讯组扩展期间,检测到一个重复收件人。
DUPLICATEREDIRECT 邮件的备用收件人已成为收件人。
EXPAND 已扩展通讯组。
FAIL 邮件传递失败。 源包括 SMTPDNSQUEUEROUTING
HADISCARD 在主副本传递至下一跃点之后丢弃影子邮件。 有关详细信息,请参阅卷影冗余
HARECEIVE 影子邮件由本地数据库可用性组 (DAG) 或 Active Directory 站点中的服务器接收。
HAREDIRECT 创建了影子邮件。
HAREDIRECTFAIL 影子邮件创建失败。 详细信息存储于 source-context 字段中。
INITMESSAGECREATED 邮件已发送至仲裁收件人,因此该邮件已发送至仲裁邮箱进行审批。 有关详细信息,请参阅管理邮件审批
LOAD 启动时已成功加载邮件。
MODERATIONEXPIRE 仲裁收件人的仲裁人从不批准或拒绝邮件,进而导致该邮件到期。 有关仲裁收件人的更多信息,请参阅管理邮件审批
MODERATORAPPROVE 仲裁收件人的仲裁人批准了邮件,从而使该邮件传递至仲裁收件人。
MODERATORREJECT 仲裁收件人的仲裁人拒绝了邮件,从而使该邮件未传递至仲裁收件人。
MODERATORSALLNDR 发送至仲裁收件人的所有仲裁人的所有批准请求都不可传递,从而导致产生未送达报告 (NDR)。
NOTIFYMAPI 在本地服务器上的邮箱发件箱内检测到一封邮件。
NOTIFYSHADOW 在本地服务器上的邮箱发件箱内检测到一封邮件,并且需要创建该邮件的影子副本。
POISONMESSAGE 邮件被放入带毒邮件队列中或从带毒邮件队列中删除。
PROCESS 已成功处理邮件。
PROCESSMEETINGMESSAGE 会议邮件已由邮箱传输传递服务处理。
RECEIVE 邮件已由传输服务的 SMTP 接收组件接收,或者从源 (的 Pickup 或 Replay 目录接收: SMTP) ,或者邮件已从邮箱提交到邮箱传输提交服务, (源: STOREDRIVER) 。
REDIRECT 在 Active Directory 查找后,邮件被重定向至一个备用收件人。
RESOLVE 在 Active Directory 查找后,邮件收件人被解析为一个不同的电子邮件地址。
RESUBMIT 已从安全网络自动重新提交邮件。 有关详细信息,请参阅Safety Net
RESUBMITDEFER 已延迟从安全网络重新提交的邮件。
RESUBMITFAIL 从安全网络重新提交的邮件失败。
SEND 邮件由传输服务间的 SMTP 发送。
SUBMIT 邮箱传输提交服务已成功将邮件传输至传输服务。 对于 SUBMIT 事件, source-context 属性包含下列详细信息:
  • MDB:邮箱数据库 GUID。
  • 邮箱:邮箱 GUID。
  • 事件:事件序列号。
  • MessageClass:消息的类型。 例如,IPM.Note
  • CreationTime:邮件提交的日期时间。
  • ClientType:例如 UserOWAActiveSync
SUBMITDEFER 已延迟将邮件从邮箱传输提交服务传输至传输服务。
SUBMITFAIL 将邮件从邮箱传输提交服务传输至传输服务的操作失败。
SUPPRESSED 邮件传输被抑制。
THROTTLE 邮件被限制。
TRANSFER 由于内容转换、邮件收件人限制或代理原因,收件人被移动到分支的邮件。 源包括 ROUTINGQUEUE

邮件跟踪日志中的源值

邮件跟踪日志中 source 字段的值指示负责邮件跟踪事件的传输组件。 下表描述 source 字段的值。

源值 说明
ADMIN 事件源是人工干预。 例如,管理员使用队列查看器删除邮件或使用重播目录提交邮件文件。
AGENT 事件源是传输代理。
APPROVAL 事件源是仲裁收件人使用的审批框架。 有关详细信息,请参阅管理邮件审批
BOOTLOADER 事件源是在启动时存在于服务器上的未处理的消息。 这与 LOAD 事件类型有关。
DNS 事件源是 DNS。
DSN 事件源是传递状态通知 (DSN)。 例如,未送达报告 (NDR)。
GATEWAY 事件源是外部连接器。 有关详细信息,请参阅外部连接器
MAILBOXRULE 事件源是收件箱规则。 有关更多信息,请参阅收件箱规则
MEETINGMESSAGEPROCESSOR 事件源是会议邮件处理器,它会随会议更新而更新日历。
ORAR 事件源是发信请求备用收件人 (ORAR)。 可以使用 New-ReceiveConnector 或 Set-ReceiveConnector cmdlet 上的 OrarEnabled 参数启用或禁用对接收连接器的 ORAR 支持。
PICKUP 事件源是分拣目录。 有关详细信息,请参阅拾取目录和重播目录
POISONMESSAGE 事件源是病毒邮件标识符。 有关病毒邮件和病毒邮件队列的更多信息,请参阅队列
PUBLICFOLDER 事件源是启用邮件的公用文件夹。
QUEUE 事件源是队列。
REDUNDANCY 事件源是卷影冗余。 有关详细信息,请参阅卷影冗余
ROUTING 事件源是传输服务中分类程序的路由解析组件。
SAFETYNET 事件源是安全网络。 有关详细信息,请参阅Safety Net
SMTP 邮件已由传输服务的 SMTP 发送或 SMTP 接收组件提交。
STOREDRIVER 事件源是来自本地服务器上邮箱的 MAPI 提交。

邮件跟踪日志中的示例条目

在两个用户间发送的无事件邮件可在邮件跟踪日志中生成若干条目。 您可以使用 Get-MessageTrackingLog cmdlet 查看结果。 有关详细信息,请参阅 搜索邮件跟踪日志

这是当用户 chris@contoso.com 成功向用户发送测试消息时创建的消息跟踪日志条目的 michelle@contoso.com精简示例。 两个用户的邮箱位于同一服务器上。

EventId    Source      Sender            Recipients             MessageSubject
-------    ------      ------            ----------             --------------
NOTIFYMAPI STOREDRIVER                   {}
RECEIVE    STOREDRIVER chris@contoso.com {michelle@contoso.com} test
SUBMIT     STOREDRIVER chris@contoso.com {michelle@contoso.com} test
HAREDIRECT SMTP        chris@contoso.com {michelle@contoso.com} test
RECEIVE    SMTP        chris@contoso.com {michelle@contoso.com} test
AGENTINFO  AGENT       chris@contoso.com {michelle@contoso.com} test
SEND       SMTP        chris@contoso.com {michelle@contoso.com} test
DELIVER    STOREDRIVER chris@contoso.com {michelle@contoso.com} test

邮件跟踪日志的安全注意事项

邮件跟踪日志中不存储任何邮件内容。 默认情况下,电子邮件的主题行存储在邮件跟踪日志中。 但可能需要禁用邮件主题日志记录,以满足更高的安全或隐私要求。 在启用或禁用邮件主题日志记录之前,请确保已验证有关显示主题行信息的组织策略。 有关详细信息,请参阅配置邮件跟踪