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) 或基础 搜索-MessageTrackingReport 和 Get-MesageTrackingReport cmdlet 来搜索邮件跟踪日志中有关组织中特定邮箱发送或接收的邮件的信息。 有关详细信息,请参阅 管理员的送达报告。
邮件跟踪日志文件的结构
默认情况下,邮件跟踪日志文件位于 %ExchangeInstallPath%TransportRoles\Logs\MessageTracking。
邮件跟踪日志目录中日志文件的命名约定是 MSGTRKyyyyMMdd-nnnn.log
、 MSGTRKMAyyyyMMdd-nnnn.log
、 MSGTRKMDyyyyMMdd-nnnn.log
和 MSGTRKMSyyyyMMdd-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 = second,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\ConnectorName 或 ConnectorName。 |
源 | 负责邮件跟踪事件的 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 OK 或 550 4.4.7 QUEUE.Expired;<ErrorText> 。 |
total-bytes | 包括附件的邮件的大小,以字节为单位。 |
recipient-count | 邮件中的收件人数。 |
related-recipient-address | 该字段与 EXPAND 、 REDIRECT 和 RESOLVE 事件一起使用来显示与邮件相关联的其他收件人电子邮件地址。 |
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-TransportService 或 Set-MailboxServer cmdlet 中的 MessageTrackingLogSubjectLoggingEnabled 参数控制。 默认情况下,启用邮件主题跟踪。 |
sender-address | 标题字段中指定Sender: 的电子邮件地址,如果Sender: 不存在,From: 则为标题字段。 |
return-path | 邮件信封中指定的寄信人电子邮件地址 MAIL FROM: 。 虽然此字段从不为空,但它可以将 null 发件人地址值表示为 <> 。 |
message-info | 有关该邮件的其他信息。 例如:
|
方向性 | 邮件的方向。 示例值包括 Incoming 、 Undefined 和 Originating 。 |
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)的情况下删除了一条消息。 例如:
|
DSN | 已生成发送状态通知 (DSN)。 |
DUPLICATEDELIVER | 向收件人传递重复邮件。 如果收件人是多个嵌套通讯组的成员,则可能会发生复制邮件情况。 信息存储将检测并删除重复邮件。 |
DUPLICATEEXPAND | 在通讯组扩展期间,检测到一个重复收件人。 |
DUPLICATEREDIRECT | 邮件的备用收件人已成为收件人。 |
EXPAND | 已扩展通讯组。 |
FAIL | 邮件传递失败。 源包括 SMTP 、 DNS 、 QUEUE 和 ROUTING 。 |
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 属性包含下列详细信息:
|
SUBMITDEFER | 已延迟将邮件从邮箱传输提交服务传输至传输服务。 |
SUBMITFAIL | 将邮件从邮箱传输提交服务传输至传输服务的操作失败。 |
SUPPRESSED | 邮件传输被抑制。 |
THROTTLE | 邮件被限制。 |
TRANSFER | 由于内容转换、邮件收件人限制或代理原因,收件人被移动到分支的邮件。 源包括 ROUTING 或 QUEUE 。 |
邮件跟踪日志中的源值
邮件跟踪日志中 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
邮件跟踪日志的安全注意事项
邮件跟踪日志中不存储任何邮件内容。 默认情况下,电子邮件的主题行存储在邮件跟踪日志中。 但可能需要禁用邮件主题日志记录,以满足更高的安全或隐私要求。 在启用或禁用邮件主题日志记录之前,请确保已验证有关显示主题行信息的组织策略。 有关详细信息,请参阅配置邮件跟踪。