通常postfixでは、
存在しないアカウント宛(メールアドレスの@より前)のメールは
SMTP接続のRCPT TOの段階でエラーを返送し、
メールを受け取りません。
今回はqmailのように、存在しないアカウント宛でもメールを受け取り、
特定のメールアドレスで受信する設定(catch all:キャッチオール)を
行います。
なお、postfix+dovecot+mysql+postfixadminで構築済みの環境を想定しています。
まだの場合はこの辺を参考に。
http://e-garakuta.net/techinfo/doku.php/linux/postfix-virtual
vi /etc/postfix/main.cf
————–
virtual_mailbox_maps = proxy:mysql:$config_directory/mysql_virtual_mailbox_maps.cf
virtual_mailbox_maps = proxy:mysql:$config_directory/mysql_virtual_mailbox_maps.cf,hash:/etc/postfix/virtual
————–
=>mysqlに加えて、virtualファイルでもメールアドレスの参照を行うようにする。
最初にpostfixadminで設定されているアドレスはmysqlを参照して配送され、
次にpostfixadminで設定されていないアドレスは、virtualを参照するようになる。
vi /etc/postfix/virtual
————
@test.com test.com/test@test.com/
————
=>ドメイン宛のすべてのメールを配送したメールボックス(Maildir形式)へ配送する。
postmap /etc/postfix/virtual
/etc/init.d/postfix reload
上記を組み合わせることで、
postfixadminで配送されないメール(存在しないアカウント)を、
ドメイン毎に任意のメールボックスへ配送することが可能となります。
もし、キャッチオールアドレスが1つの場合は、
luser_relayを使って制御もできるのかな。