qmail+vpopmail+procmail
所謂、sendmailとかの/etc/aliasesっぽいの?。それをqmail+vpopmailでやってみる
設定
VPOPMAIL_HOME/domains/hoge.com/.qmail-ユーザー名を作成します。登録されている全てのユーザーで実行されるようにする場合はVPOPMAIL_HOME/domains/hoge.com/.qmail-defaultとして作成。んで中身を以下のように
| /path/to/vpopmail/bin/vdelivermail '' bounce-no-mailbox
| /usr/bin/procmail -m /path/to/vpopmail/domains/hoge.com/.procmailrc-ユーザー
ユーザー別に参照されるprocmailrcを切り替える為、ファイル名にユーザー名を付けておきます
.procmailrcの設定
別にこいつのパスはどこでもいいと思うんですが、どうせならvpopmail側に置いときましょう。
PATH=/bin:/usr/bin:/usr/local/bin
MAILDIR=/path/to/vpopmail/domains/hoge.com/ユーザー/Maildir/new
LOGFILE=pm.log
LOCKFILE=pm.lock
:0
| /path/to/php/bin/php /path/to/test.php
PHPスクリプトを作成
とりあえず受信したメールを別名で保存してみる
<?php
$mail_data = file_get_contents("php://stdin");
file_put_contents("sample.mail.dat", $mail_data);
?>
procmailから渡された受信データ(標準入力?)を取得するにはphp://stdinで標準入力形式から取得する事ができるようです。設定したユーザー向けにメールを投げて成功すればメールデータのファイルが作成されるはず