【Postfix】postfixログ解析プログラム【python】

学習

更新情報

・2025/1/25 初版:

postfixメールログ解析プログラム

Postfixメールログはそのままでは読みにくいので、
Postfixメールログファイルを解析し、メールアドレス、日時、ステータス、およびステータスコードを抽出し、Excelファイルに保存するpythonツールを作成しました。
主にメール送信状況の監視やトラブルシューティングを目的としています。

使い方

【プログラムの主な機能】
1. ファイル選択: ユーザーがGUIファイルダイアログを使用してPostfixログファイル(.log)を選択。
2. データ抽出:
– メールアドレスの抽出(例: `user@example.com`)
– 日付・時間の抽出(Postfixログ形式 “Nov 6 22:07:23” など)
– メールステータス(例: “status=sent”, “status=bounced” など)
– ステータスコード(例: 450, 421 など)
3. 抽出データをリストに格納し、Excelファイルに出力。
4. エラー処理:
– ログファイルのエンコーディングエラー処理
– ファイルの読み込みエラー処理
– データの欠損に対する処理

【プログラムの利用方法】
1. Pythonをインストールしていない場合は、[公式サイト](https://www.python.org/downloads/)からインストールしてください。
2. 必要なライブラリをインストールします。以下のコマンドを実行してください:
3. プログラムを実行します(ターミナルまたはコマンドプロンプトで実行)
4. 表示されたファイル選択ダイアログで解析するログファイルを選択します。
5. 抽出されたデータがExcelファイル(`email_status_list_YYYYMMDD_HHMMSS.xlsx`)として保存されます。

【注意点・留意点】
– 本スクリプトはPostfixのログフォーマットに基づいています。他のMTA(Sendmail, Exim等)には適用できない可能性があります。
– ログファイルは UTF-8 エンコーディングである必要があります。
– 日付フォーマットが「Nov 6 22:07:23」形式であることを前提としています。
– “sent” のステータスを持つログは内容を省略する仕様になっています。
– ファイル選択後、処理には時間がかかる場合があります。
– 出力フォーマット: メールアドレス、日時(M/D H:M:S)、ステータス、ステータスコード、ログ内容。

【ライブラリについて】
以下ライブラリをインストールしてください。
– `pandas`: データの処理・操作に使用。
– `openpyxl`: Excelファイルの作成と書き込みに使用。
– `tkinter`: ファイル選択のGUIインターフェースを提供(Python標準ライブラリ)。

 

スクリプト

コメント

タイトルとURLをコピーしました