ヴァーチャルドメイン(VirtualDomain)を利用して、複数ドメインの設定を行う

投稿者: | 2014/04/01

前回の記事でエイリアスを設定することで、別メールに転送したりPHPスクリプトを実行したりできました。
通常、Postfixでは一つのドメインに対して設定を行うことができるのですが、VirtualDomainを使うことで、複数ドメインで同じようなことができます。

今回の目標

  • contact@baz.com, contact@qux.com, contact@quux.com にメール送信すると、baz_contact@gmail.com, qux_contact@gmail.com, quux_contact@gmail.com にそれぞれメールが転送されるようにする
  • register@baz.com にメール送信すると、指定したPHPスクリプトが実行される

サーバ環境

  • CentOS 6.4
  • Postfix 2.6.6

DNSの設定

ドメインのDNSを管理している管理画面(レジストラ、Route53など)で以下のようにDNSを設定します。

baz.com

ホスト名 レコード TTL VALUE
baz.com A 60 101.102.103.104
mail.baz.com A 60 101.102.103.104
baz.com MX 60 10 mail.baz.com
baz.com TXT 60 v=spf +ip:101.102.103.104 -all

qux.com

ホスト名 レコード TTL VALUE
qux.com A 60 101.102.103.104
mail.qux.com A 60 101.102.103.104
qux.com MX 60 10 mail.qux.com
qux.com TXT 60 v=spf +ip:101.102.103.104 -all

quux.com

ホスト名 レコード TTL VALUE
quux.com A 60 101.102.103.104
mail.quux.com A 60 101.102.103.104
quux.com MX 60 10 mail.quux.com
quux.com TXT 60 v=spf +ip:101.102.103.104 -all

Postfixの設定

VirtualDomainの設定

  • virtual_alias_domainsは、virtualdomainのリストを指定します。半角スペースまたはコンマ(,)で複数のドメインを指定することができます
    • 注意点は、 mydomain または mydestination で指定したドメインをvirtual_alias_domains に含めてはいけません
  • virtual_alias_maps は、virtual_alias_domainsで指定したVirtualDomainのメールアドレスとのエイリアスを設定します
    • /etc/postfix/virtual は実際に存在するファイルを指定します

エイリアスの設定

以下のように設定します。

virtual.db作成

ヴァーチャルドメイン用のデータベースを作成する必要があり、postmapコマンドで行います。

実行すると、/etc/postfix/virtual.dbが作成されます。

エイリアスの設定を反映

newaliasesコマンドを実行します。

Postfixを再起動

設定されたかの確認

postmapコマンドを使うことでVirtualDomainの設定が正しくされたかの確認ができます。

-q オプションでメールアドレスを指定すると、/etc/postfix/virtual で設定されたエイリアスが表示されるはずです。
もし何も表示されなければ、設定がどこかで間違っていると思いますので設定を見直してください。

最後に

VirtualDomainを設定して複数ドメインでメールの設定を行いました。
基本的には前回と同様にエイリアスを設定することで使えるようになりました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*