共用方式為


反垃圾郵件代理程式記錄

適用於:Exchange Server 2013

代理程式記錄會記錄 2013 年 Microsoft Exchange Server 特定反垃圾郵件代理程式在郵件上執行的動作。 只有下列代理程式可以將資訊寫入代理程式記錄檔:

  • 連線篩選代理程式
  • 內容篩選器代理程式
  • 邊際規則代理程式
  • 收件者篩選器代理程式
  • 寄件者篩選器代理程式
  • 寄件者識別碼代理程式

注意事項

無法使用 Mailbox server 上的連線篩選代理程式與 Edge 規則代理程式。

代理程式記錄中寫入的資訊,會視 SMTP 事件以及對郵件執行的動作而定。

您可以使用 Exchange 管理命令介面中的 Set-TransportService Cmdlet 來執行所有代理程式記錄組態工作。 下列選項適用於代理程式記錄:

  • 啟用或停用代理程序記錄。 預設值是啟用。
  • 指定代理程式記錄檔的位置。 默認值為 %ExchangeInstallPath%TransportRoles\Logs\Hub\AgentLog。
  • 指定個別代理程式記錄檔的大小上限。 預設大小為 10 MB。
  • 指定包含代理程式記錄檔之目錄的大小上限。 預設大小為 250 MB。
  • 指定代理程式記錄檔的存留期上限。 默認年齡為 7 天。

Exchange 會使用循環記錄,限制代理程式記錄使用的檔案大小及檔案保留天數,以協助控制記錄檔所使用的硬碟空間。

傳輸代理程式的概觀

代理程式只能在 SMTP 命令序列中用來透過信箱伺服器或 Edge Transport Server 上的傳輸服務傳輸訊息的特定點處理訊息。 SMTP 命令序列中的這些存取點稱為 SMTP 事件。 每個代理程式都有可指派的優先順序值。 不過,SMTP 事件必須一律以特定順序發生。 因此,代理程式優先順序取決於 SMTP 事件。 如果兩個代理程式可以在相同的 SMTP 事件期間處理訊息,則優先順序最高的代理程式會先對訊息採取行動。

下表列出各 SMTP 事件 (依出現順序排列),並列出每個 SMTP 事件中將資訊寫入代理程式記錄的代理程式 (依優先順序從高至低排列)。

SMTP 事件的發生順序,以及以每個 SMTP 事件的優先順序將資訊寫入代理程式記錄檔的代理程式

SMTP 事件 代理程式
OnConnect 連線篩選代理程式
OnMailCommand 連線篩選代理程式

寄件者篩選器代理程式
OnRcptCommand 連線篩選代理程式

收件者篩選器代理程式
OnEndOfHeaders 連線篩選代理程式

寄件者識別碼代理程式

寄件者篩選器代理程式
OnEndOfData 邊際規則代理程式

內容篩選代理程式

注意事項

無法使用 Mailbox server 上的連線篩選代理程式與 Edge 規則代理程式。

如需代理程式、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 = hour、 mm = minute、 ss = second、 fff = 秒的分數,而 Z 表示 Zulu,這是表示 UTC 的另一種方式。
  • #Fields:代理程序記錄檔中使用的逗號分隔功能變數名稱。

寫入代理程式記錄檔的資訊

代理程式記錄會將每個代理程式交易儲存在記錄中的單一行。 儲存在每行上的資訊被依據的欄位。 這些欄位用逗號隔開。 功能變數名稱的描述性通常足以判斷它所包含的信息類型。 不過,某些欄位可能是空白的。 或者,儲存在欄位中的資訊類型可能會根據代理程式或代理程式在訊息上執行的動作而變更。 下表描述用來分類每個代理程式交易的欄位。

用來分類每個代理程式交易的欄位

欄位名稱 描述
時間戳記 代理程式事件的 UTC 日期時間。 UTC 日期時間會以 ISO 8601 日期時間格式表示: yyyy-MM-ddThh:mm:ss.fffZ、 其中 yyyy = year、 MM = month、 dd = day、T 表示時間元件的開頭、 hh = hour、 mm = minute、 ss = second、 fff = 秒的分數,而 Z 表示 Zulu,這是表示 UTC 的另一種方式。
SessionId 唯一 SMTP 會話標識碼。 此標識碼會以16位數的十六進位數位表示。
LocalEndpoint 接受訊息的本機IP位址和埠號碼。 SMTP 工作階段通常會使用埠 25。
RemoteEndpoint 線上到此伺服器以傳遞訊息之先前 SMTP 伺服器的 IP 位址和埠號碼。 當因特網郵件流經周邊網路中的Edge Transport Server時,信箱伺服器上代理程序記錄檔中的 RemoteEndpoint 值會是Edge Transport Server 的IP位址。 即使訊息是由 SMTP 傳輸,傳送伺服器使用的埠號碼還是會是大於 1,024 的隨機數位。
EnteredOrgFromIP 第一次連線到 Exchange 組織以傳遞訊息之遠端 SMTP 伺服器的 IP 位址。 在 Edge Transport Server 上, RemoteEndpointEnteredOrgFromIP 的值相同。 反垃圾郵件代理程式會使用 EnteredOrgFromIP 中的 IP 位址來檢查訊息。
MessageId 標頭欄位的 MessageID 值。 如果此值為空白,則 Exchange 傳輸伺服器會指派任意值,但只有在訊息被接受時才會指派。 指派值之後, 的 MessageID 值會是訊息存留期的常數。
P1FromAddress 郵件信封中 MAIL FROM 指定的寄件者電子郵件位址。 這個值是用來在 SMTP 訊息伺服器之間傳輸訊息。 此值可做為 P2FromAddresses 值的比較,以判斷郵件標頭中的寄件者位址是否為偽造的。
P2FromAddresses 在標頭欄位或 From 訊息標頭的標頭欄位中 Sender 指定的寄件者電子郵件位址。
收件者 Email 收件者的位址。 雖然原始訊息可能包含多個收件者,但代理程序記錄中每一行只會顯示一個收件者。
NumRecipients 原始郵件中的收件者總數。
代理程式 採取動作的代理程式名稱。 可能的值如下:
  • 內容篩選器代理程式
  • 收件者篩選器代理程式
  • 寄件者篩選器代理程式
  • 寄件者識別碼代理程式
Event 代理程序採取動作的 SMTP 事件。 Event 的值取決於代理程式。 本主題稍早的第一個表格說明每個代理程式可用的 SMTP 事件。 Event 的可能值如下:
  • OnConnect
  • OnEndOfHeaders
  • OnEndOfData
  • OnMailCommand
  • OnRcptCommand
動作 代理程式在訊息上執行的動作。 Action 的可能值如下所示:
  • AcceptMessage
  • DeleteMessage
  • DeleteRecipients
  • Disconnect
  • QuarantineMessage
  • QuarantineRecipients
  • RejectAuthentication
  • RejectCommand
  • RejectConnection
  • RejectMessage
  • RejectRecipients
SmtpResponse 如 RFC 2034 中所定義的增強 SMTP 回應。
原因 代理程式所提供動作的原因。
ReasonData 代理程式所提供動作的描述性詳細數據。

搜尋代理程式記錄

您可以使用 Get-AgentLog 指令程式和 Get-AntiSpamFilteringReport.ps1 指令碼來搜尋代理程式記錄。

Get-AntiSpamFilteringReport.ps1 文稿位於 %ExchangeInstallPath%Scripts。 您需要從 Scripts 資料夾在殼層中執行腳稿。 若要將殼層中的位置變更為 Scripts 資料夾,請執行下列命令:

Cd $env:ExchangeInstallPath\Scripts

若要在 Scripts 資料夾中執行指令碼,請使用下列語法:

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

如需關於使用指令碼的使用資訊,請執行下列命令:

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