muttヘッダーキャッシュから電子メール統計を生成する方法は?

muttヘッダーキャッシュから電子メール統計を生成する方法は?

適切に設定すると(set header_cache=)、muttはメッセージヘッダーをキャッシュファイルに保存します。これは、電子メール統計を生成するために使用できます。ファイル形式をご存知ですか?ここに含まれている情報を抽出するためのツールはありますか? (追加でstrings、、grepなどawk

ベストアンサー1

短い答え:

キャッシュが包括的ではない可能性があります。メッセージを削除し、後で hcache がそのメールボックスのヘッダー キャッシュを再計算する場合、統計には削除前のメッセージは含まれません。

サーバーのメールログにア​​クセスできない場合は、procmailなどのフィルタリングメカニズムにアクセスできますか?これを使用して分析用の代替ログを生成できます。

それ以外の場合は、受信メールログを生成できるプログラムを使用してメールボックスをポーリングできますか? Offlineimapフィルタまたはいくつかのハッシュとキャッシュと組み合わせたfetchmail / retchmailに似ています。

より長い答え:

キャッシュファイルはDBMスタイルのデータベースです。 muttの正確なビルドオプションに応じて、次のいずれかです。量子データベース管理東京キャビネットデータベース管理システムまたはBerkeleyデータベース(BDB);すべてBDB APIのバリアントを実装します。

正しいライブラリ実装を使用しないと、データベースを確実に読み取ることができないようです。ldd東京キャビネットを使ってローカルのmutt実装を教えてください。

$ ldd /usr/bin/mutt
libtokyocabinet.so.8 => /usr/lib/libtokyocabinet.so.8 (0xb74f2000)

その後、キャッシュファイルに格納されているBDBを照会するためにライブラリを使用するプログラムを作成する必要があります。 Perl、Ruby、Lua、Java、そしてもちろんCへのバインディングがあります。

ヘッダーは、CRCによって索引付けされた値でデータベースに保管されているようです。私が知る限り、CRCはメールボックスのパスから派生します。つまり、保存されたヘッダーは次のようになります。このメールボックスのすべてのメッセージのヘッダー。したがって、プログラムはデフォルトで特定のメールボックス内のすべてのメッセージのすべてのヘッダーを含むバッファで終わります。私はこれが現在のメールボックスにあるすべてのメッセージからヘッダーを抽出するよりも有用であるとは思わない(上記の「短い答え」が与えられた場合、それはより信頼できるとは保証されない)。

おすすめ記事