読者です 読者をやめる 読者になる 読者になる

Postfix でバーチャルドメインで受けたメールを指定アドレスに転送するには

Postfix

そのホストのメインドメインとは別のドメインのメールアドレスにメールが来たら、別のメールアドレスに転送する方法について。
まずメインドメインとは別のドメインを受けるには、virtual_aliases_domains に設定します。さらにそのドメインのメールをどう処理するか virtual_alias_maps に指定したファイルやデータベースでマッピイングします。

メイン設定

/etc/postfix/main.cf
virtual_alias_domains = another.com
virtual_alias_maps = hash:/etc/postfix/virtual
/etc/postfix/virtual

マップ設定を編集する。下記は receive@another.com を to@forward.com に転送する設定です。

receive@another.com       to@forward.com
設定反映

postmap でマップ設定を反映して、Postfix を再起動します。

# postmap /etc/postfix/virtual
# /etc/init.d/postfix restart

To: が欠落しないようするには

上記の設定だと転送されたメールの To: undisclosed-recipients:; なります。これだと受け取ったときにどこ宛のメールかわかりません。調べたところバーチャルドメインのみを使った場合、しょうがないようです。
それでは困るので、一旦エイリアスを経由させたところうまくいきました。

/etc/postfix/virtual

マップ設定を編集する。下記は receive@another.com を to@forward.com ではなくローカルの viaanother に渡すようにします。

receive@another.com       viaanother

viaanother に来たものを to@forward.com に転送するようにします。

/etc/aliases
viaanother: to@forward.com

を追記して

# newaliases

で反映です。

これで To: には元の宛先が残ったまま転送されるようになりました。当然 エイリアスではなくメールボックス内で .forward 設定することも可能です。