Procmailの設定

投稿者: | 2010年8月14日
Pocket

対象サーバについて

製品名 OpenBlockS 600
OS(kernel ver) Debian lenny(2.6.29)
CPU 600MHz(AMCC PowerPC 405EX)
メモリ 1GB(DDR2 SDRAM)
ストレージ 8GB(Compact Flash)

はじめに

Procmail側の設定だけではなく、Postfixの設定も必要です。

Procmailのインストール

受信メールの振り分けのため、Procmailをインストールします。

www:~# aptitude install procmail
www:~# exit
logout
user001@www:~$ 

Procmail設定

Procmailの設定を実施します。Maildir形式を使用するための設定と、特定キーワードがSubjectに含まれていた場合に特定のアドレスにメールを転送するための設定を行います(cron-aptの設定で利用しています)

※Maildir形式はProcmail 3.14より前のバージョンには対応していないそうなので注意が必要です。

user001@www:~$ vi .procmailrc

SHELL=/bin/bash
PATH=/bin:/usr/bin:/usr/sbin    # procmailが使用するパス
LOGFILE=$HOME/procmail.log      # ログファイル名
DROPPRIVS=yes
#LOCKFILE=$HOME/.lockfile        # ロックファイル名
MAILDIR=$HOME/Maildir/          # メール格納場所
DEFAULT=$MAILDIR                # レシピにマッチしなかった場合の格納場所

### Subject:に"test"が含まれていた場合はカーボンコピーして
### (メールボックスに受信メールを残す)
### pc@xxx.comに転送
:0 c
* ^Subject: .*test.*
! pc@xxx.com

次に、メール格納場所を作ります。

user001@www:~$ mkdir Maildir
user001@www:~$ su -
パスワード:

www:~# /etc/init.d/postfix restart
Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.

www:~# ls -al ~user001/Maildir/
合計 8
drwxr-xr-x 2 user001 adm 4096 2010-01-05 11:15 .
drwxr-xr-x 6 user001 adm 4096 2010-01-05 11:15 ..

この時点ではMaildirは空ですが、メールを受信するとフォルダとファイルが作成されます。

他のサーバから本メールサーバに接続して自分宛にメールを送信してみます。

test:~# telnet 172.0.0.2 25

Trying 172.0.0.2...
Connected to 172.0.0.2.
Escape character is '^]'.
220 mail.example.jp ESMTP unknown
MAIL FROM:user001@example.jp
250 2.1.0 Ok
RCPT TO:user001@example.jp
250 2.1.5 Ok
DATA
354 End data with .
test
.
250 2.0.0 Ok: queued as 88B61E338B
quit
221 2.0.0 Bye
Connection closed by foreign host.

自分宛にメールを送信してみたところ、以下の通り、メール受信後にDirectoryが自動で作成されました。

www:~# ls -al ~user001/Maildir/
合計 20
drwxr-xr-x 5 user001 adm 4096 2010-01-05 11:17 .
drwxr-xr-x 6 user001 adm 4096 2010-01-05 11:17 ..
drwx------ 2 user001 adm 4096 2010-01-05 11:17 cur
drwx------ 2 user001 adm 4096 2010-01-05 11:17 new
drwx------ 2 user001 adm 4096 2010-01-05 11:17 tmp

newフォルダ内に、先ほどのメールが1ファイルで保存されています。

www:~# ls ~user001/Maildir/new/
1262657864.30555_0.open
www:~# less ~user001/Maildir/new/1262657864.30555_0.open
Return-Path: <user001@example.jp>
X-Original-To: user001@open.example.jp
Delivered-To: user001@open.example.jp
Received: from unknown (unknown [192.168.0.2])
        by mail.example.jp (Postfix) with SMTP id 88B61E338B
        for <user001@open.example.jp>; Tue,  5 Jan 2010 11:17:26 +0900 (JST)
Message-Id: <20100105021738.88B61E338B@mail.example.jp>
Date: Tue,  5 Jan 2010 11:17:26 +0900 (JST)
From: user001@example.jp
To: undisclosed-recipients:;

test
Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です