メール検索システム

最終更新日時:2007-04-17 16:31:53
自宅サーバへの道

多数の ML 等に入っているとメールの管理がかなり大変です。
基本的にはメーラーの方で管理すればよいのですが、複数メールアドレスの一括管理/遠隔からの参照/不特定多数への公開/バックアップ等を考えると、以下のようなシステムがあると便利だと思います。

・プロバイダや会社等、管理したいメールスプールに溜まっているメールを定期的に自宅サーバ内へ取り込む
・取り込んだメールを種類別に自動的に振り分け、自宅サーバ内に保存(バックアップ用)
・保存したものとは別にメールを HTML 形式に変換し、こちらも種類別に自動的に振り分け、自宅サーバ内に保存
・HTML 形式に変換したメールを Web 上から検索可能にする
・自宅サーバ内へ取り込んだメールについては pop3, imap 等で参照可能にする(要するに普通にメールサーバとして機能させる)

ここでは構成とインストール・設定の概要を簡単に紹介するのにとどめます。
具体的なインストール方法や設定は各アプリケーションのメモを参照してください。

構成


以下の構成でメール検索システムを構築することを考えます。

アプリケーション名概要
Fetchmailプロバイダや会社からメールを取得するために使用
Procmail受信したメールを指定したルールに従って振り分けるために使用
MHonArc指定したメールを HTML 形式に変換して保存するために使用
NamazuHTML 形式のメール検索の検索エンジンとして使用
ApacheWeb上からの参照を可能にするために使用(既に稼働中)
qpopperメールをPOP3にて参照可能にするために使用(既に稼働中)
PostfixMTAとして使用(既に構築中)


自宅サーバ内のメールサーバの構築


まず初めに、自宅サーバ内でメールサーバを構築します。
これについては既に構築してますので、メールサーバの整備を参照してください。
なお、この後、SMTPの整備でSMTPを外部に公開していますが、今回構築するシステムではSMTPを外部に公開しておく必要は特にありません。
ローカル配信ができればOKです。

外部のメールサーバからのメールの取得


プロバイダや会社等外部のメールサーバからメールを取得するためにFetchmailをインストールします。
インストールしたらFetchmailを定期的にメールを取得しに行くように設定をし、さらにその間隔も適当なものを設定します。
Fetchmail実行後、正常に外部のメールを取得し、ローカルのメールキューに溜まることを確認します。

POP3


ローカルのメールキューに溜まったメールをPOP3で受信できるよう設定します。
これについては既に構築してますので、メールサーバの整備を参照してください。
もちろん、POP3ではなく、IMAP4でもよいです。

受信したメールの振り分け


ローカル配信にて受信したメールを振り分けるために Procmailをインストールします。
インストールしたら、.forward等を編集して、そのままメールをスプールに溜めつつ、Procmailにもメールを転送するように設定します。
次に.procmailrcを編集して、メールの振り分け設定をします。
ただし、まだHTML形式への変換手段が無いので出力先は単にオリジナルのメールを適当な場所へ保存するだけにとどめます。
この時点で振り分け設定に従って、意図通りにディレクトリごとにメールが保存されることを確認します。

メールファイルをHTML形式へ変換


Procmail経由で転送されてきたメールをHTML形式に変換して保存するためにMHonArcをインストールし、適宜設定を行います。
設定が終わったら適当に保存されているメールファイルを使用して正常にHTML形式のファイルに出力できるかどうか確認します。
正常に出力できていればMHonArcが正しく機能しているので、.procmailrcを編集して、オリジナルメールの保存と同時に自動的にMHonArcによるHTML形式のメールファイルの作成も行うように設定します。
設定できたら自動的にMHonArcによるHTMLファイルが作成されるかどうか確認します。

検索システム構築


メールをHTMLファイルとして保存できるようになったので、これを検索することを考えます。
検索エンジンはいくつか候補がありますが、今回はNamazuを使うことにします。
NamazuをインストールしたらmknmzrcをHTMLファイルとなったメールを対象としてインデックスを作成するように設定します。
設定後、mknmzを実際に実行し、namazuで実際に検索ができるかどうか確認します。
この時点で、namazuを使ってコマンドライン上ではメール検索が可能になります。
正常に検索できることが確認できたら定期的にインデックスを作成し直すように、cronに登録します。

CGIにて検索


Webからの参照を可能にするために自宅サーバ内にWebサーバとしてApacheをインストールします。
Namazuにはnamazu.cgiというCGIでnamazu検索をするためのプログラムが含まれているので、これを使います。
namazu.cgiを適当な場所へ設置し、Apacheの設定を変更してnamazu.cgiが実行できるようにします。
実行できたらテンプレート等の設定を行って好きなようにカスタマイズしましょう。

お問い合わせは 掲示板 にて。