メール振り分けソフト(procmail)の利用について

procmailを利用すると、ご自分で定義したレシピ(メールを振り分けするルール)に従って、メールの振り分けをすることができます。
新着メールのサブジェクトや差出人などのヘッダーに含まれる特徴のある文字列をレシピに定義してフィルタリングを行い、SPAMなど不要メールの削除や特定メールの携帯電話等への転送などができるようになります。
procmailの設定とレシピの定義の要領について、以下をご覧ください。

1. procmailで利用する各種ファイル

procmailの利用に必要となる2つ制御用ファイル(レシピファイルとメール制御用ファイル)と、1つのログ出力用ファイルについて説明します。
 
●制御用ファイル
  • レシピファイル:(~/.procmailrc)
       
    procmailでメールの振り分けをするルールを記述しておくファイルです。

  • メール制御用ファイル:(~/.forward)

    ここでは、procmailに新着メールの処理をさせるために使用します。
    (既に~/.forwardをメール転送として使用していた場合は、必要に応じてその転送先の記述をレシピファイルで定義してください。)
  ※ これら2つのファイルは、"."(ドット)から始まるファイル名ですのでお忘れなく。
  ※ ~/ は自分のホームディレクトリを意味します。
    (~/.forwardは、/home/ログイン名/.forwardと同意)

●ログファイル

  • procmailのログ出力用ファイル:(例では、~/procmail.logを使用)

    procmailで処理した内要を記録しておくファイルです。
    レシピファイルで指定しますが、省略可能です。
    (必要に応じて任意のファイル名と保管場所をご指定ください。)

2. レシピファイル(~/.procmailrc)の設定

レシピファイルには複数のレシピを記述することができ、レシピの先頭は「:0」から始まります。
行頭に "#" を記述すると、行末までコメントとみなされレシピの対象から除外できます。
詳しくは、以下のページがとても参考になります。

http://www.jaist.ac.jp/~fjt/procmail.html

それでは、簡単なレシピファイル(~/.procmailrc)を設定してみましょう。

例1. 受信したメールの"From:"行に"foo@hogehoge.spam.site"を含むメールのみを削除する。


MAILDIR=$HOME/Maildir/   ← メール格納場所の指定
DEFAULT=$MAILDIR      ← レシピに適合しなかった場合の格納場所(MAILDIR変数と同じ)
LOGFILE=$HOME/procmail.log ← ログファイル名を指定
:0             ← ゼロの後ろに空白を入れる
* ^From:.*foo@hogehoge.spam.site  ← メールのFrom行をチェック
/dev/null          ← 削除する際の指定

例2. 上記に加え、受信したメールの"Subject"行に"ML-foo"を含むメールを"watasino@keitai"へ転送する。


MAILDIR=$HOME/Maildir/
DEFAULT=$MAILDIR
LOGFILE=$HOME/procmail.log
:0            
* ^From:.*foo@hogehoge.spam.site 
/dev/null
:0             ← 新しい制御の始まり
* ^Subject:.*ML-foo    ← 題名に"ML-foo"の文字が含まれるメールを
! watasino@keitaiai      ← メールを転送する時は"! "の後ろにアドレスを書く

例3. 上記の設定では"watasino@keitai"へ転送したメールは、元のメールアドレスには残らないので、自分にも残すようにカーボンコピー "c" を追加する。

    次のように指定すると、元のメールアドレスと転送先のメールアドレスの両方にメールが転送されます。

MAILDIR=$HOME/Maildir/
DEFAULT=$MAILDIR
LOGFILE=$HOME/procmail.log
:0
* ^From:.*foo@hogehoge.spam.site
/dev/null
:0 c            ← ゼロの後ろに"c"を入れるとコピーが残る
* ^Subject:.*ML-foo
! watasino@keitai

3. メール制御用ファイル(~/.forward)の設定

次にメール制御用ファイル(~/.forward)を設定します。

 procmailを使う場合、”~/.forward”ファイルの記述は以下のようになります。

 

"| IFS=' ' && exec /usr/local/bin/procmail -f- || exit 75" ←  ダブルクォーテーション""も記述する。


汎用サーバ(sakura)のホームページへ戻る