procmailでメールを振り分ける。 Postfix+DovecotのIMAPサーバでの例。
procmailでの振り分け設定
まず/etc/postfix/main.cfを編集して次のように設定しておく。
- home_mailbox
- Maildir/
- mail_spool_directory
- (コメントアウトする)
- mailbox_command
- /usr/bin/procmail
つづいて、procmailのパーミッションを変更してsetuidビットを立てる。
ちなみに、setuidビットを立てない場合、/var/log/maillogにこのようなメッセージがはき出される。
つづいて、ホームディレクトリ下に.forwardと.procmailrcというファイルを作成する。 .forwardで受信したメールをprocmailに渡すように設定し、.procmailrcで振り分けの設定を行う。 まずは.forwardの記述例。
ダブルクォーテーションも含めて記述する。 また、#以降にユーザ名を記述する。 続いて、.procmailrcの記述例。
最初の6行は環境変数の設定で、メールの保存ディレクトリ、ログファイル名、ログの詳細度などを設定している。 0:で始まる三つの部分が、振り分けのルール。 上から順に、
- 受信メールのFromヘッダ(送信元)に「atmarkit.co.jp」が含まれていたら、受信トレイの「@IT」フォルダに振り分ける
- 受信メールのSubjectヘッダ(タイトル)に「LogWatch」が含まれていたら、受信トレイの「LogWatch」フォルダに振り分ける
- 受信メールのSubjectヘッダ(タイトル)に「Cron」が含まれていたら、受信トレイの「Cron」フォルダに振り分ける
となっている(上記に該当しないメールは、受信トレイに振り分けられる)。 振り分けルールについての詳細な説明は、こちらなどを参照のこと。
Thunderbirdでの受信設定
Thunderbirdで振り分けたメールを参照できるように設定を行う。 まず、受信トレイを右クリックし、「購読」をクリックする。
すべてのフォルダにチェックを入れてOKボタンを押す。 この状態では、新着メールがフォルダに振り分けられても自動的には通知されないので、通知するように設定する。 そのために、任意のフォルダを右クリックし、
「このフォルダに新着メッセージがないか確認する」にチェックを入れる。 これをすべてのフォルダに対して行えばOK。