反垃圾邮件代理日志记录

适用于:Exchange Server 2013

代理日志记录 Microsoft Exchange Server 2013 中特定反垃圾邮件代理对邮件执行的操作。 只有以下代理才能将信息写入代理日志:

  • 连接筛选代理
  • 内容筛选器代理
  • 边缘规则代理
  • 收件人筛选器代理
  • 发件人筛选器代理
  • 发件人 ID 代理

注意

"连接筛选"代理和"边缘规则"代理在邮箱服务器上不可用。

写入代理日志中的信息取决于代理、SMTP 事件和对邮件执行的操作。

使用 Exchange 命令行管理程序中的 Set-TransportService cmdlet 执行所有代理日志配置任务。 以下选项可用于代理日志:

  • 启用或禁用代理日志记录。 默认为启用。
  • 指定代理日志文件的位置。 默认值为 %ExchangeInstallPath%TransportRoles\Logs\Hub\AgentLog。
  • 指定单个代理日志文件的最大大小。 默认大小为 10 MB。
  • 指定包含代理日志文件的目录的最大大小。 默认大小为 250 MB。
  • 指定代理日志文件的最长期限。 默认期限为 7 天。

Exchange 使用循环日志记录,并基于文件大小和文件期限对代理日志进行限制,以帮助控制日志文件所使用的硬盘空间。

传输代理概述

代理只能在 SMTP 命令序列中用于通过邮箱服务器或边缘传输服务器上的传输服务传输邮件的特定点处理邮件。 SMTP 命令序列中的这些接入点称为 SMTP 事件。 每个代理都有一个可以分配的优先级值。 但是,SMTP 事件必须始终按特定顺序发生。 因此,代理优先级取决于 SMTP 事件。 如果两个代理可以在同一 SMTP 事件期间处理邮件,则优先级最高的代理将首先处理邮件。

下表列出了 SMTP 事件(以出现顺序)和向代理日志写入信息的代理(以代理对每个 SMTP 事件的由高至低优先级顺序)。

SMTP 事件(以出现顺序)和向代理日志写入信息的代理(以代理对每个 SMTP 事件的优先级顺序)

SMTP 事件 代理
OnConnect 连接筛选代理
OnMailCommand 连接筛选代理

发件人筛选器代理
OnRcptCommand 连接筛选代理

收件人筛选器代理
OnEndOfHeaders 连接筛选代理

发件人 ID 代理

发件人筛选器代理
OnEndOfData 边缘规则代理

内容筛选代理

注意

"连接筛选"代理和"边缘规则"代理在邮箱服务器上不可用。

有关代理、SMTP 事件和代理优先级的详细信息,请参阅传输代理

代理日志文件的结构

代理日志存在于 %ExchangeInstallPath%TransportRoles\Logs\Hub\AgentLog。

代理日志文件的命名约定是 AGENTLOGyyyyMMdd-nnnn.log。 占位符代表下列信息:

  • 占位符 yyyyMMdd 是协调世界时 (UTC) 创建日志文件的日期。 占位符 yyyy = year,MM = month,dd = day。
  • 占位符 nnnn 是每天从值 1 开始的实例编号。

信息将写入日志文件,直到文件大小达到其最大值指定值,并打开具有递增实例编号的新日志文件。 此过程在全天重复进行。 当代理日志目录达到其最大指定大小或日志文件达到其最大指定期限时,循环日志记录会删除最早的日志文件。

代理日志文件是包含逗号分隔值文件中数据的文本文件, (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:代理日志文件中使用的逗号分隔字段名称。

写入代理日志的信息

代理日志将每个代理事务存储在日志中的单行上。 存储在每行上的信息按字段进行组织。 这些字段用逗号分隔。 字段名称通常具有足够的描述性,足以确定它包含的信息类型。 但是,某些字段可能为空。 或者,字段中存储的信息类型可能会根据代理或代理对消息执行的操作而更改。 下表描述了用于对每个代理事务进行分类的字段。

用于对每个代理事务进行分类的字段

字段名 说明
Timestamp 代理事件的 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 的另一种方法。
SessionId 唯一的 SMTP 会话标识符。 此标识符表示为 16 位十六进制数字。
LocalEndpoint 接受消息的本地 IP 地址和端口号。 SMTP 会话通常使用端口 25。
RemoteEndpoint 连接到此服务器的上一个 SMTP 服务器的 IP 地址和端口号以传递邮件。 当 Internet 邮件流经外围网络中的边缘传输服务器时,邮箱服务器上的代理日志中的 RemoteEndpoint 值将是边缘传输服务器的 IP 地址。 即使邮件是通过 SMTP 传输的,发送服务器使用的端口号将是大于 1,024 的随机数。
EnteredOrgFromIP 第一次连接到 Exchange 组织以传递邮件的远程 SMTP 服务器的 IP 地址。 在边缘传输服务器上, RemoteEndpointEnteredOrgFromIP 的值相同。 反垃圾邮件代理使用 EnteredOrgFromIP 中的 IP 地址来检查邮件。
MessageId MessageID标头字段的值。 如果此值为空,则 Exchange 传输服务器将分配任意值,但仅当邮件被接受时。 分配值后,的值 MessageID 在消息的生存期内为常量。
P1FromAddress 邮件信封中指定的 MAIL FROM 发件人电子邮件地址。 此值用于在 SMTP 消息服务器之间传输消息。 此值与 P2FromAddresses 的值进行比较,以确定邮件头中的发件人地址是否伪造。
P2FromAddresses 在邮件头字段或邮件头的Sender标头字段中指定的From发件人电子邮件地址。
收件人 Email收件人的地址。 尽管原始邮件可能包含多个收件人,但代理日志中每行仅显示一个收件人。
NumRecipients 原始邮件中的收件人总数。
代理 执行操作的代理的名称。 可能值包括:
  • 内容筛选器代理
  • 收件人筛选器代理
  • 发件人筛选器代理
  • 发件人 ID 代理
"事件" 代理在其中执行操作的 SMTP 事件。 Event 的值取决于代理。 本主题前面的第一个表介绍了可用于每个代理的 SMTP 事件。 Event 的可能值如下所示:
  • OnConnect
  • OnEndOfHeaders
  • OnEndOfData
  • OnMailCommand
  • OnRcptCommand
操作 代理对消息执行的操作。 Action 的可能值如下所示:
  • AcceptMessage
  • DeleteMessage
  • DeleteRecipients
  • 断开连接
  • QuarantineMessage
  • QuarantineRecipients
  • RejectAuthentication
  • RejectCommand
  • RejectConnection
  • RejectMessage
  • RejectRecipients
SmtpResponse 在 RFC 2034 中定义的增强的 SMTP 响应。
原因 代理所提供的操作原因。
ReasonData 代理所提供的有关操作的描述性详细信息。

搜索代理日志

可以使用 Get-AgentLog cmdlet 和 Get-AntiSpamFilteringReport.ps1 脚本搜索代理日志。

Get-AntiSpamFilteringReport.ps1 脚本位于 中%ExchangeInstallPath%Scripts。 需要从 Scripts 文件夹在 Shell 中运行脚本。 若要将 Shell 中的位置更改为“脚本”文件夹,请运行以下命令:

Cd $env:ExchangeInstallPath\Scripts

若要运行脚本文件夹中的脚本,请使用以下语法:

.\Get-AntiSpamFilteringReport.ps1 -report <ReportValue> [<OptionalParameters>]

有关使用脚本的详细信息,请运行以下命令:

Get-Help -Detailed .\Get-AntiSpamFilteringReport.ps1