ドメインを3つ運用している我が家のサーバ。
そのうちのひとつである39diva.comの主、歌姫Sakから「メールを別アカウントに転送して欲しいんですけど…」とリクエストを受けて.Forwardを…と思ったら、Postfixではローカルアカウントしか.Forwardが使えない。/etc/postfix.main.cf.defaultに
forward_path = $home/.forward${recipient_delimiter}${extension}, $home/.forward
と書いてある。我が家ではPostfixAdmin+MySqlによるバーチャルドメイン運用なので、この$homeを動的に切り替えてあげるように設定ファイルを書けば良いんだろうけれど、私のスキルではそんなことムリムリ。
さぁて、困ったなぁと思っていたら…PostfixAdminの設定ファイル config.inc.php にこんなことが書いてある。
// Alias Control
// Postfix Admin inserts an alias in the alias table for every mailbox it creates.
// The reason for this is that when you want catch-all and normal mailboxes
// to work you need to have the mailbox replicated in the alias table.
// If you want to take control of these aliases as well set this to ‘YES’.
訳すとこういうこと
// エイリアス制御
// Postfix Admin では、それぞれのメールボックスを作成するときエイリアステーブルにエイリアスをひとつ、登録します。
// これによってキャッチ-オールを行い、かつ通常のメールボックス
// を運用しようとしたときにエイリアステーブルに複製するメールボックスを登録することができます.
// もし、自分でこれらの制御を行おうという場合には、以下のパラメータにYESを指定してください。
つまり、メールボックスへメールが配送される前にエイリアステーブルで1回宛先の変換/追加処理がかかっているので、そのテーブルを直接に操作したいならYESを指定しなさい、と。
早速指定。
$CONF['alias_control'] = ‘YES’;
するとドメインのエイリアスリストのところに、hoge@hoge.comのエイリアスとしてhoge@hoge.comが登録されていますよ、と表示される。Editを押して編集画面に入り、エイリアスとして別のメールアドレスを指定してあげれば.Forwardのできあがり。
なるほど。
と思っていたら、ユーザログインで管理画面に入ると転送先指定ができることを発見。alias_controlがNoでもこれが出来るのかどうかは未検証。だって、結構時間を使って上の解決法を見つけたのに、そんなので出来ちゃったら悔しいじゃないか。