Procmail

サーバーでメールを振り分けるソフトである Procmail を使ってみましょう。これはサーバーが取り込んだメールを好きなディレクトリ(普通はホームディレクトリに作ったサブディレクトリ)に振り分けるソフトです。特に、imap4 と組み合わせることでより便利になります。僕はこれでメーリングリストを振り分けるだけでなく、自分宛のメールを特定のディレクトリに振り分け、同時にiMODEにも転送するようにしています。

1.Procmailのインストール

FreeBSD の場合、ports からインストール可能です。

# cd /usr/ports/mail/procmail
# make install

2..forward

ホームディレクトリに次のような .forward ファイルを作ります。詳しくは example ディレクトリを参照して下さい。

% cd ~
% ee .forward
-----
"|IFS=' ' && p=/usr/local/bin/procmail && test -f $p && exec $p -Yf- || exit 75 #YOUR_LOGIN_NAME"
-----
<例>
"|IFS=' ' && p=/usr/local/bin/procmail && test -f $p && exec $p -Yf- || exit 75 #masao"

MTA(Mail Server) に qmail を使用している場合は、.forward ファイルを使えるようにするため、dot-forward をインストールしなくてはなりません。/usr/local/src にソースを置いてインストールします。

# cd /usr/local/src
# tar zxvf dot-forward-0.71.tar.gz
# cd dot-forward-0.71
# make setup check

3..procmailrc

ホームディレクトリに次のような .procmailrc ファイルを置きます。samples や man を参考にして下さい。

% cd ~
% vi .procmailrc
-----
PATH=$HOME/bin:/usr/bin:/usr/ucb:/bin:/usr/local/bin:.
MAILDIR=$HOME/Mail      # You'd better make sure it exists
DEFAULT=$MAILDIR/mbox
LOGFILE=$MAILDIR/from
SENDMAIL=/usr/sbin/sendmail

:0
* ^Subject:.*test-ml            # Subjectにtest-mlという文字を含むメールを
test-ml                         # test-mlに振り分ける

:0                              # To にmasaoという文字がある場合は
* ^To:.*masao                   # 09088888888@docomo.ne.jp (架空)
{                               # に転送する、と同時に masao に
   :0 c                         # 振り分ける
    ! 09088888888@docomo.ne.jp  #
                                #
   :0 c                         # To にmasaoという文字がある場合は
   /var/mail/masao              # /var/mail/masao (POP3のファイル)にコピーする
                                # c はカーボンコピーの意味で元のファイルは残すという意味
   :0                           #
   masao                        # そして最後にmasaoに振り分ける(移動する)
}                               #
                                #
:0                              # uncle.or.jp というドメインを持った
* ^From.*uncle.or.jp            # メールが来た場合、uncle
uncle                           # に振り分ける

なお、courier-imap と組み合わせて、Maildir方式に対応するには、次のように記載します。

PATH=$HOME/bin:/usr/bin:/usr/ucb:/bin:/usr/local/bin:.
MAILDIR=$HOME/IMAP/      # You'd better make sure it exists
DEFAULT=$MAILDIR
LOGFILE=$MAILDIR/from

:0
* ^To:.*masao
{
:0 c
! mfujie@docomo.ne.jp
:0 c
/home/masao/Maildir/
:0
.masao/
}

:0
* ^Subject:.*test-ml
{
:0 c
/home/masao/Maildir/
:0
.test-ml/
}

:0
* ^Subject:.*FreeBSD-users-jp
.FreeBSD-users-jp/

この場合、imap 用のディレクトリを ~/IMAP としました。もちろん、これは maildirmake コマンドで作成します。qmail-pop3d 用のディレクトリは ~/Maildir としました。

4.ディレクトリ等の作成

まずデフォルトの Mail ディレクトリと mbox ファイルを作ります。mbox はパーミッションに気をつけます。

% cd ~
% mkdir Mail
% cd Mail
% touch mbox
% chmod 600

その他、.procmailrc で指定したファイルを作成します。クライアントの IMAP4 対応メールソフトで作成しても構いません。

% touch test-ml
% touch masao
% touch uncle
% chmod 600 *

これでメールが振り分けられるはずです。Maildir に対応したディレクトリに振り分けるには、Maildir の名前を ~/IMAP とすると、

# cd ~
# /var/qmail/maildirmake IMAP
# cd IMAP
# /var/qmail/maildirmake .test-ml

などとします。サブディレクトリにはピリオドが必要です。これも IMAP4 対応クライアントから作成可能です。

TOP PAGE