次のページ 前のページ 目次へ

6. フォルダへメールを自動的に振り分ける

あなたが私のように1日に1500通ものメッセージを受け取る場合や、 メールを集める毎に興味があるメッセージ全てに努力して目を通さなければ ならない場合があります。

しかしこれはProcmailのおかげでたいして問題になっていません。

Procmailは以下のように動作します:Procmailはメールをダウンロードした時に 各メッセージを調べてユーザーが指定した特定のルールに基づいて一連の処理を します。 例えばあるメーリングリストから1日200通のメールを受け取る場合 (この例ではLinux-foo listを使っています)、これらのメールを全てinboxに送る よりも"foo-list"というボックスに自動的にフィルタしたいものです。

はじめに、メーリングリストからのメールを開いてメールのヘッダを調べてみま しょう。 メーリングリストからのメッセージには全て

Sender: owner-linux-foo@bar.foogers.com
といった行があります。 この行を含んだ全てのメッセージを特定のフォルダに入れることをprocmailに 教えることができます。 procmailにそれを教えるには".procmailrc"ファイルに 書き込んでおきます。 適当なエディタで"~/.procmailrc"というファイルを 開きます。 ファイルには以下のように書かれています:
LOGFILE=$HOME/.pmlog
MAILDIR=$HOME/mail
VERBOSE

# linux-foo list
:0 Hw
* ^.*[Ss]ender: owner-linux-foo@bar.foogers.edu

foo-list
# if it got to this point, put it in my new mail folder
:0 Hw
newmail

"[Ss]ender"行を調べてみましょう。 メーリングリストからのメッセージは全てこの行を共通に持っていることに 気づくでしょう。 このセクションは「ヘッダにそのような行がある時には、このメッセージを "foo-list" フォルダに入れる」ということをprocmailに教えています。 次の箇所はどのパターンにも合わない時はnewmailにするということを指示しています。

さてここで私の親友であるEJからメッセージを受け取ったら"EJ"というフォルダ にメールを入れるということをやってみます。 procmailrc ファイルに以下のような新しいセクションを作ります;


LOGFILE=$HOME/.pmlog
MAILDIR=$HOME/mail
VERBOSE
 
# linux-foo list
:0 Hw
* ^.*[Ss]ender: owner-linux-foo@bar.foogers.edu
foo-list
# Message from EJ!
:0 Hw
* ^.*[Ff]rom: ej@mypal.com
ej

# if it got to this point, put it in my new mail folder
:0 Hw
newmail

新しいセクションEJに注目して下さい。"From"フィールドに彼のメールアドレスがある メッセージを受け取ったら、自動的に"ej"フォルダに入れるようにしています。

さて私にメールを送ってくるいやな人がいるとしましょう。 私は彼のメールを見たくないのにしつこくメールを送ってきます。 ここでも再びprocmailが助けてくれます。 例えばBill Gatesさんからのメールを読みたくないものとしましょう。 彼からのメールを削除する方法を設定します。以下新しいprocmailを見て下さい:


LOGFILE=$HOME/.pmlog
MAILDIR=$HOME/mail
VERBOSE
 
# Is it coming from Bill Gates?  If yes, DELETE IT!!!
:0 Hw
* ^.*[Ff]rom: bgates@microsoft.com
/dev/null

# linux-foo list
:0 Hw
* ^.*[Ss]ender: owner-linux-foo@bar.foogers.edu

foo-list
 
# Message from EJ!
:0 Hw
* ^.*[Ff]rom: ej@mypal.com
ej
 
# if it got to this point, put it in my new mail folder
:0 Hw
newmail

だいぶよいprocmailrcファイルになりました。受信したメッセージそれぞれ をどのようにprocmailが処理しているか見てみましょう。

はじめにメッセージが"bgates@microsoft.com"からのものかどうか チェックしています。もしそうなら削除しています(訳注:いわゆる 「Flames to /dev/null」です)。

もしひとつめのチェックをパスしたら、ヘッダに "owner-linux-foo@bar.foogers.edu"があるかどうか調べます。もしそうなら "foo-list"フォルダに入れます。

メッセージがまだパスしたら次はEJからのメールがどうかチェックします。 もしEJからのものなら"ej"フォルダに入れます。

以上にひっかからなかったら全てnewmailフォルダて入れます。

これらのフォルダがちゃんとあれば、procmailは適切にメールを振り分けてくれます。 フォルダはTkRatの"Admin - New/Edit Folder" で各ファイル名用のものを作って おいて下さい。これらは/home/(ユーザー名)/mail/(フォルダ名)にあります。


次のページ 前のページ 目次へ