所謂、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で標準入力形式から取得する事ができるようです。設定したユーザー向けにメールを投げて成功すればメールデータのファイルが作成されるはず