2008-10-15 36 views
4

我們的Web應用程序發送電子郵件。我們有很多用戶,並且我們得到很多反彈。例如,用戶更改公司和他的公司電子郵件不再有效。解析發現彈跳的SMTP日誌的工具

要查找反彈,我使用日誌解析器解析SMTP日誌文件。日誌來自Microsoft SMTP服務器。

一些反彈很棒,如550+#[email protected]。有反彈的[email protected]

但有些沒有錯誤信息的電子郵件,如550+No+such+recipient

我已經創建了簡單的Ruby腳本來解析日誌(使用日誌解析器)來查找哪個郵件導致類似550+No+such+recipient的事情。

我很驚訝,我找不到一個工具。我發現了像Zabbix和Splunk這樣的工具用於日誌分析,但它們看起來像是過分簡單的任務。

任何人都知道一個工具,可以解析SMTP日誌,找到反彈和電子郵件,導致他們?

+0

什麼SMTP服務器。沒有一致的格式 – jj33 2008-10-15 14:29:02

+0

對不起,我不知道這是相關的。微軟的smtp服務器。編輯帖子。 – 2008-10-15 14:37:37

回答

5

這個article正是你正在尋找。它基於偉大的工具log parser

日誌分析器是一個功能強大,用途廣泛 工具,提供了通用查詢 訪問諸如日誌 文件,XML文件和CSV文件基於文本的數據, 以及對 的Windows®關鍵數據源操作系統,如 事件日誌,註冊表,文件 系統和ActiveDirectory®。您 告訴Log Parser您需要什麼信息以及您希望如何處理它。 您的查詢結果可能是 在基於文本的輸出中自定義格式, 或者它們可以被持久保存到更多 專業目標,如SQL,SYSLOG或 圖表。大多數軟件被設計爲 完成有限數量的 特定任務。 Log Parser與 不同......它可以使用的方式數量僅限於需求 和用戶的想象力。 世界是您的數據庫與日誌 解析器。

+0

謝謝,很高興看到我不是唯一一個解析日誌文件反彈的人。我做了類似於我的ruby腳本(它也使用日誌解析器來解析日誌)。具有獨特的返回路徑的 – 2008-10-15 14:44:24

6

據我所見,日誌文件分析實際上僅用於檢測在SMTP會話級別被拒絕的郵件。在遠程MTA接收到交付信息但隨後未能交付信息之後發生的反彈情況如何?

我們使用以下設置來檢測並將其分類在交付給遠程MTA後全部反彈。

  1. 所有發出的郵件都給出了unique return-path header其中,解碼時,確定收件人的電子郵件地址和特定郵件。

  2. 一個Apache James服務器接收郵件返回到返回的路徑地址。

  3. 定製mailet,由Java開發並在Apache James內執行,解碼地址,將電子郵件文本發送到boogietools bounce studio進行退回類型分類,然後將結果保留到我們的數據庫。

它的工作非常非常好。我們能夠檢測永久性硬反彈和短暫軟反彈,這些反彈又被分類爲非常細粒度的反彈類型,例如垃圾郵件拒絕,不在辦公室回覆等。

0

您不想分析日誌以嘗試識別反彈。如果你只看日誌,你將會有假陰性和假陽性。

可能會在傳送到的服務器的下游生成反彈。它們看起來就像在傳出的服務器日誌中成功交付。

天真模式匹配傳入日誌中的反彈(從null發件人到您的VERP編輯地址之一)將不準確。造成這種情況的原因有以下幾點:

  • 會有延遲警告與實際的故障反彈混合在一起。
  • 大多數外出辦公室和類似的自動應答使用null發件人來防止battlin-bots綜合徵。
  • 同樣,挑戰 - 響應系統(如* spit * boxbe.com)傾向於使用空發件人。
  • 您的VERP發件人地址(如果它們對每個收件人持續存在)將被垃圾郵件發件人收集,並作爲垃圾郵件目標或反向散射回來。

所以,可悲的是,唯一可靠的方法就是檢查反彈信息本身。他們中的大多數將根據RFC1894具有「報告/傳送狀態」MIME部分,並且根據您選擇的語言,可能會有庫或模塊來幫助處理其他反彈格式。我唯一直接體驗的是Perl Mail :: DeliveryStatus :: BounceParser模塊,它運行得很好。