今日も引き続き過去のメモを掘り起こして記事にしようのコーナーです。 しばらくはこれで記事更新が続くので楽ですね。
以前、[Postfix]エイリアスでメール送信するときに気をつけること(エンベロープFromの書き換え) という記事でメール転送時にエンベロープFromを書き換えてスパム判定されにくい(正式な)メール転送方法を紹介しました。
実際にサービス運用する場合は、1つのサーバに複数Webサービスが同居することがざらにあり、別々のドメインでメール管理をしなければならないことがあります。
今回はヴァーチャルドメイン(VirtualDomain)による複数ドメインでメール転送している場合にエンベロープFromを書き換える方法を紹介します。
今回の目標
- VirtualDomainを利用して複数ドメインでメール転送している場合にエンベロープFromを書き換える
- 次のようにメール転送します。
転送元 | 転送先 |
---|---|
contact@foo.com | foo_contact@gmail.com |
contact@bar.com | bar_contact@gmail.com |
実行環境
- Postfix 2.6.6
- CentOS 6.5
VirtualDomainの設定
ヴァーチャルドメイン(VirtualDomain)を利用して、複数ドメインの設定を行う でも紹介しましたのでここでは設定のみ載せておきます。
# /etc/postfix/main.cf
# 末尾に追加
virtual_alias_domains = foo.com, bar.com
virtual_alias_maps = hash:/etc/postfix/virtual
転送先をメールアドレスではなく、エイリアス名(contact-foo
など)で指定します。
エイリアス先は後ほど/etc/aliases
で設定します。
# /etc/postfix/virtual
contact@foo.com contact-foo
contact@bar.com contact-bar
エイリアスの設定
以下のように、エイリアス先でsendmail
コマンドを実行するようにします。
# /etc/aliases
contact-foo: "|/usr/sbin/sendmail -oi -f contact@foo.com foo_contact@gmail.com"
contact-bar: "|/usr/sbin/sendmail -oi -f contact@bar.com bar_contact@gmail.com"
設定したらあとはいつものように設定を反映させたら完了です。
$ sudo postmap /etc/postfix/virtual
$ sudo newaliases
$ sudo service postfix reload
最後に
VirtualDomainだとドメインの逆引きができないので、必ずしもメールが正常に届くかというと難しいですね。