https://blog.51cto.com/jialt/1812622

在进行Exchange邮件投递分析时,我们经常会使用Get-MessageTrackingLog查看邮件传输的过程,以此来分析邮件接收和发送情况。我们需要对日志中的字段代表的含义需要了解,这样才能看懂日志。

邮件跟踪日志详细记录了邮件流经由邮箱服务器上的传输管道和边缘传输服务器进行传输产生的所有邮件活动。您可以使用邮件跟踪进行邮件取证、邮件流分析、报告和故障排除。

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

搜索邮件跟踪日志


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

  • Get-MessageTrackingLog   管理员可以使用此 Exchange 命令行管理程序 cmdlet 来搜索邮件跟踪日志,以获取有关使用大量筛选条件的邮件的信息。

  • 管理员的送达报告   管理员可以使用 Exchange 管理中心 内的“送达报告”选项卡或 Exchange 命令行管理程序 中基本的 Search-MessageTrackingReport 和 Get-MessageTrackingReport cmdlet 来搜索邮件跟踪日志,以获取有关由组织中特定邮箱发送或接收的邮件的信息。

  • 用户的送达报告   用户可以使用 Web 上的 Outlook 中的“送达报告”选项卡来搜索邮件跟踪日志,以获取有关由其自己邮箱发送或接收的邮件的信息。

邮件跟踪日志文件的结构


默认情况下,邮件跟踪日志文件存放在 %ExchangeInstallPath%TransportRoles\Logs\MessageTracking 中。文件夹包含具有不同名称的日志文件,但这些文件都遵循命名约定 MSGTRKServiceyyyymmdd-nnnn.log。不同的日志文件名称如下表所述。

文件名 服务器 说明

MSGTRK

邮箱服务器和边缘服务器

传输服务的日志文件。

MSGTRKMA

邮箱服务器

在仲裁传输过程中有关批准和拒绝的日志文件。

MSGTRKMD

邮箱服务器

邮箱传输传递服务传递至邮箱的邮件的日志文件。

MSGTRKMS

邮箱服务器

邮箱传输提交服务从邮箱发送的邮件的日志文件。

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

  • yyyymmdd 为创建日志文件时的协调世界时 (UTC) 日期。yyyy = 年,mm = 月,dd = 日。

  • nnnn 为每天对每个日志的实例编号,从值 1 开始。

系统向日志文件写入信息,直至文件大小达到其最大值。然后打开具有递增实例编号的新日志文件(第一个日志文件是 -1,下一个是 -2,依此类推)。当满足以下两个条件之一时,循环日志记录将删除最旧的服务日志文件:

  • 日志文件达到最长期限。

  • 邮件跟踪日志文件夹大小达到其最大值。

    重要说明:
    邮件跟踪日志文件夹的最大大小按以下方法计算:将具有相同名称前缀的所有日志文件的大小相加,求其总和。在计算总文件夹大小时,不会将其他未遵循名称前缀约定的文件计算在内。重命名旧日志文件或将其他文件复制到邮件跟踪日志文件夹可能会导致文件夹超出指定的最大大小。                        
    在邮箱服务器上,邮件跟踪日志文件夹的最大大小是指定值的三倍。虽然由这四个不同服务生成的邮件跟踪日志文件有四个不同的名称前缀,但是与另外三个日志文件前缀相比,写入仲裁传输日志 (MSGTRKMA) 的数据量和数据频率几乎可以忽略不计。

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

  • #Software:   值是 Microsoft Exchange Server

  • #Version:   创建邮件跟踪日志文件的 Exchange 服务器的版本号。值使用格式 15.01.nnnn.nnn

  • #Log-Type:   值是 Message Tracking Log

  • #Date:   创建日志文件的 UTC 日期-时间。UTC 日期-时间以 ISO 8601 日期-时间格式表示:yyyy-mm-ddThh:mm:ss.fffZ,其中 yyyy = 年,mm = 月,dd = 天,T 表示时间部分的开头,hh = 小时,mm = 分钟,ss = 秒,fff = 几分之几秒,而 Z 表示祖鲁语(另一种 UTC 表示方法)。

  • #Fields:   邮件跟踪日志文件中使用的字段名(以逗号分隔)。

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


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

字段名称 说明

date-time

邮件跟踪事件的 UTC 日期-时间。UTC 日期-时间以 ISO 8601 日期-时间格式表示:yyyy-mm-ddThh:mm:ss.fffZ,其中 yyyy = 年,mm = 月,dd = 天,T 表示时间部分的开头,hh = 小时,mm = 分钟,ss = 秒,fff = 几分之几秒,而 Z 表示祖鲁语(另一种 UTC 表示方法)。

client-ip

提交邮件的消息服务器或消息客户端的 IPv4 或 IPv6 地址。

client-hostname

提交邮件的消息服务器或消息客户端的主机名或 FQDN。

server-ip

源或目标服务器的 IPv4 或 IPv6 地址。

server-hostname

目标服务器的主机名或 FQDN。

source-context

与 source 字段相关联的额外信息。例如:

  • CatContentConversion

  • 250 2.0.0 OK;ClientSubmitTime:<UTC>

connector-id

发送连接器的名称或接受邮件的接收连接器的名称。例如,ServerName\ConnectorName 或 ConnectorName

source

负责事件的 Exchange 传输组件。

event-id

邮件事件类型。

internal-message-id

由当前正在处理邮件的 Exchange 服务器所分配的邮件标识符。

在涉及邮件传输的每个 Exchange 服务器的邮件跟踪日志中,邮件的 internal-message-id 是各不相同的。示例值为 73014444033

message-id

邮件头中 Message-Id: 头字段的值。如果 Message-Id: 头字段不存在或为空,则 Exchange 为其分配一个任意值。该值在邮件生存期内是常量。对于在 Exchange 中创建的邮件,该值的格式为 <GUID@ServerFQDN>,包括尖括号 (< >)。例如,<4867a3d78a50438bad95c0f6d072fca5@mailbox01.contoso.com>。其他邮件系统可能使用不同的语法或值。

network-message-id

唯一的邮件 ID 值,因拆分或通讯组扩展而创建,且在各邮件副本中均保持有效。示例值为 1341ac7b13fb42ab4d4408cf7f55890f

recipient-address

邮件收件人的电子邮件地址。多个电子邮件地址通过分号字符 (;) 分隔。

recipient-status

各收件人的收件人状态由分号字符 (;) 分隔。收件人状态值的显示顺序与 recipient-address 字段中的值相同。示例状态值包括:

  • ToCc 或 Bcc

  • 250 2.1.5 Recipient OK

  • 550 4.4.7 QUEUE.Expired;<ErrorText>

total-bytes

以字节为单位的邮件总大小,包括所有附件。

recipient-count

邮件中的收件人总数。

related-recipient-address

该字段与 EXPANDREDIRECT 和 RESOLVE 事件一起使用来显示与邮件相关联的其他收件人电子邮件地址。

reference

该字段包含特定类型事件的其他信息。例如:

  • DSN   包含报告链接,如果 DSN 是在事件发生之后生成的,则该报告链接为相关传递状态通知(也称为 DSN、退回邮件、未送达报告或 NDR)的 Message-Id 值。如果这是 DSN 邮件,Reference 字段则包含生成该 DSN 的原始邮件的 Message-Id 值。

  • EXPAND   包含相关邮件的 related-recipient-address 值。

  • RECEIVE   如果相关邮件由其他过程生成(例如日记或收件箱规则),则有可能会包含该邮件的 Message-Id 值。

  • SEND   包含任何 DSN 邮件的 Internal-Message-Id 值。

  • THROTTLE   包含邮件限制的原因。

  • TRANSFER   包含正在被分支的邮件的 Internal-Message-Id 值。

  • 由收件箱规则生成的邮件   包含使收件箱规则生成出站邮件的入站邮件的 Internal-Message-Id 值。

  • 可能包含分支邮件的 Internal-Message-Id 值。

对于其他类型的事件,此字段通常为空。

message-subject

在 Subject: 头字段中找到的邮件主题。邮件主题的跟踪由 Set-TransportService cmdlet 中的 MessageTrackingLogSubjectLoggingEnabled 参数进行控制。默认情况下,启用邮件主题跟踪。

sender-address

Sender: 头字段中指定的电子邮件地址,如果 Sender: 字段不存在,则为 From: 头字段中指定的电子邮件地址。

return-path

由发送邮件的 MAIL FROM 命令指定的返回电子邮件地址。尽管此字段从不为空,但它可以有表示为 <> 的空发件人地址值。

message-info

有关该邮件的其他信息。例如:

  • DELIVER 和 SEND 事件的邮件起始 UTC 日期-时间。起始日期-时间是邮件第一次传入 Exchange 组织的时间。UTC 日期-时间以 ISO 8601 日期-时间格式表示:yyyy-mm-ddThh:mm:ss.fffZ,其中 yyyy = 年,mm = 月,dd = 天,T 表示时间部分的开头,hh = 小时,mm = 分钟,ss = 秒,fff = 几分之几秒,而 Z 表示祖鲁语(另一种 UTC 表示方法)。

  • 身份验证错误。例如,您可以看到身份验证出错时所使用的值 11a 和身份验证类型。

directionality

邮件的方向。示例值包括 IncomingUndefined 和 Originating

tenant-id

该字段不可用于本地 Exchange 组织。

original-client-ip

原始客户端的 IPv4 或 IPv6 地址。

original-server-ip

原始服务器的 IPv4 或 IPv6 地址。

custom-data

该字段包含与特定事件类型相关的数据。例如,传输规则代理使用该字段对在邮件上执行的传输规则或 DLP 策略的 GUID 进行记录。

transport-traffic-type

在本地 Exchange 中,此字段为空或含有值 Email

log-id

邮件跟踪日志中某一行的唯一标识符。该字段在本地 Exchange 组织中不重要。

schema-version

在邮件跟踪日志中创建项目的 Exchange 服务器的版本号。值使用格式 15.01.nnnn.nnn

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


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

事件名称 说明

AGENTINFO

传输代理使用该事件记录自定义数据。

BADMAIL

分拣目录或重播目录提交的邮件无法传递或返回。

CLIENTSUBMISSION

邮件已从邮箱的发件箱中提交。

DEFER

邮件传递延迟。

DELIVER

邮件已传递至本地邮箱。

DSN

生成了传递状态通知(亦称为 DSN、退回邮件、未送达报告或 NDR)。

DROP

在不提供传递状态通知(亦称为 DSN、退回邮件、未送达报告或 NDR)的情况下删除了一条消息。例如:

  • 已完成裁决审批请求邮件。

  • 在不提供 NDR 的情况下悄悄丢弃的垃圾邮件。

DUPLICATEDELIVER

向收件人传递重复邮件。如果收件人是多个嵌套通讯组的成员,则可能会发生复制邮件情况。信息存储将检测并删除重复邮件。

DUPLICATEEXPAND

在通讯组扩展期间,检测到一个重复收件人。

DUPLICATEREDIRECT

邮件的备用收件人已成为收件人。

EXPAND

已扩展通讯组。

FAIL

邮件传递失败。源包括 SMTPDNSQUEUE 和 ROUTING

HADISCARD

在主副本传递至下一跃点之后丢弃影子邮件。

HARECEIVE

影子邮件由本地数据库可用性组 (DAG) 或 Active Directory 站点中的服务器接收。

HAREDIRECT

创建了影子邮件。

HAREDIRECTFAIL

影子邮件创建失败。详细信息存储于 source-context 字段中。

INITMESSAGECREATED

邮件已发送至仲裁收件人,因此该邮件已发送至仲裁邮箱进行审批。

LOAD

启动时已成功加载邮件。

MODERATIONEXPIRE

仲裁收件人的仲裁人从不批准或拒绝邮件,进而导致该邮件到期。

MODERATORAPPROVE

仲裁收件人的仲裁人批准了邮件,从而使该邮件传递至仲裁收件人。

MODERATORREJECT

仲裁收件人的仲裁人拒绝了邮件,从而使该邮件未传递至仲裁收件人。

MODERATORSALLNDR

发送至仲裁收件人的所有仲裁人的所有批准请求都不可传递,从而导致产生未送达报告(亦称为 NDR 或退回邮件)。

NOTIFYMAPI

在本地服务器上的邮箱发件箱内检测到一封邮件。

NOTIFYSHADOW

在本地服务器上的邮箱发件箱内检测到一封邮件,并且需要创建该邮件的影子副本。

POISONMESSAGE

邮件被放入带毒邮件队列中或从带毒邮件队列中删除。

PROCESS

已成功处理邮件。

RECEIVE

邮件由传输服务的 SMTP 接收组件接收或由分拣或重播目录发送(源:SMTP),或邮件已从邮箱提交至邮箱传输提交服务(源:STOREDRIVER)。

REDIRECT

在 Active Directory 查找后,邮件被重定向至一个备用收件人。

RESOLVE

在 Active Directory 查找后,邮件收件人被解析为一个不同的电子邮件地址。

RESUBMIT

已从安全网络自动重新提交邮件。

RESUBMITDEFER

已延迟从安全网络重新提交的邮件。

RESUBMITFAIL

从安全网络重新提交的邮件失败。

SEND

邮件由传输服务间的 SMTP 发送。

SUBMIT

邮箱传输提交服务已成功将邮件传输至传输服务。对于 SUBMIT 事件,source-context 属性包含下列详细信息:

  • MDB   邮箱数据库 GUID。

  • Mailbox   邮箱 GUID。

  • Event   事件序列号。

  • MessageClass   邮件类型。例如,IPM.Note

  • CreationTime   邮件提交的日期-时间。

  • ClientType   例如,UserOWA 或 ActiveSync

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

事件源是安全网络。

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

Exchange邮件跟踪日志不得不了解的知识相关推荐

  1. zimbra收取邮件跟踪日志

    ZIMBRA 收取邮件跟踪之日志分析 标签:Rbl, Zimbra, 垃圾邮件, 日志, 灰名单 一封正常的邮件在 Zimbra 邮箱系统接收的时候会在 /var/log/zimbra.log 及 / ...

  2. PowerBI从Exchange跟踪日志中分析数据和KPI展现

    很多企业都有用Exchange Server来构建自己的企业邮箱,但做邮件统计的时候,自带的Exchange toolboxs总是不能很友好的展示出您想查询或统计的结果,要么就是借助的第三方的反垃圾网 ...

  3. Exchange邮件系统日志查看及管理

    https://blog.51cto.com/horse87/1617957 我们在企业日产工作中,Exchange邮件是大家使用频率很高的应用,在日常的使用中,经常会由于操作的失误或者其他原因,导致 ...

  4. 查询邮件传输日志(exchange2016)

    Exchange 2016 传输日志查询 解决的问题: 例如:排查邮件被退信 解决方案: 提示:这里填写该问题的具体解决方案: Get-ExchangeServer | where {$.isHubT ...

  5. exchange邮件队列延迟,一直在未定义中,无法到下一步

    微软在2022年1月1日更新了(Exchange 恶意软件扫描程序) 导致所有邮件都在队列里无法发送和接收. 1.故障现象 所有 Exchange 用户邮箱无法接收.发送邮件 2 影响范围 :Exch ...

  6. exchange系列(三)exchange邮件服务器的邮件传输管理

    博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 前言:我们前面安装好了exchange2 ...

  7. easymailobjects php,用easymailobject组件处理exchange邮件源代码(6)_asp实例

    在ASP中用EasyMailObject处理Exchange邮件源代码-发送邮件的界面(sendmail1.asp) ************************************* 这个文 ...

  8. mysql通过查看跟踪日志跟踪执行的sql语句

    在SQL SERVER下跟踪sql采用事件探查器,而在mysql下如何跟踪sql呢? 其实方法很简单,开启mysql的日志log功能,通过查看跟踪日志即可. 开启mysql的日志log方法: wind ...

  9. DPM2007轻松恢复Exchange邮件,DPM2007系列之三

    DPM轻松恢复Exchange被删除邮件 我们在之前的文章中已经介绍了如何实现DPM2007的部署及配置,今天我们将为大家如何利用DPM2007对Exchange邮件服务器实现数据保护.拓扑如下图所示 ...

最新文章

  1. 剑指offer:面试题10- II. 青蛙跳台阶问题
  2. 极光商智®服务器2007今日正式发布
  3. 【原创】民航业——软件项目管理经验点滴
  4. lua之弱引用table
  5. python中queue使用_在python2.6中使用Queue类
  6. QT-Qt获取当前时间并格式化输出及将积秒转换成时间
  7. matlab文件目录表示,Matlab - 文件目录路径操作_读取不同路径下的相同文件名表格...
  8. python 多继承的问题
  9. 工作225:当前导致name报错
  10. js与c语言效率_JavaScript比c语言的性能差了多少?
  11. boost asio io_service与 strand 分析
  12. 主题图标_iPhone一键更换主题、图标神器
  13. MySQL索引的Index method中btree和hash的优缺点
  14. Bootstrap3系列:按钮组
  15. 微信小程序订阅消息:用云服务编写订阅消息超详细描述
  16. java怎么判断字符串是否为空的几种方法
  17. ubuntu中用gimp 将psd文件分解
  18. P1069 微博转发抽奖
  19. 什么是数字孪生技术?
  20. 百度高德地图收费5万?

热门文章

  1. 基于mpi的奇偶排序_基于MPI的PSRS并行排序算法的实现
  2. pythonapp自动化_移动App Appium自动化测试教程Appium+Python 【2018年新】
  3. 计算机二级c语言改错,国家计算机二级C语言机试改错试题及答案.doc
  4. python基础编程练习题_Python随笔18:Python基础编程练习题1~2
  5. jdb java_JAVA初学者的JDB 尝试
  6. python上下文管理协议_Python3基础-上下文管理协议
  7. C++新特性探究(六):auto
  8. 计算机桌面图标有小纸张,电脑桌面图标上都有个小图标,为什么
  9. java p8级别_JAVA程序员月入5000+很迷茫,如何能在一年内改变达到月入过万?
  10. django filter查询多选_django model filter查询