この疑問に回答します。
クラウド型のメール(Office365やGmail)の普及により、最近は自身でメールサーバーを構築する機会が減ってきました。急激に用途が変わって来たことを感じます。
各種Webサービスからの通知メールやメルマガ送信された際の返信先は集約させています。集約するには複数ドメインを受信出来る必要があります。このような場合は、Postfixのバーチャルドメイン(VirtualDomain)を利用すると便利です。
バーチャルドメイン(VirtualDomain)とは
Postfixの設定ファイル main.cf で記載するドメイン(mydomain や mydestination)以外のドメインを受信出来るようにするための機能です。
Postfixの設定
Virtual Domain(/etc/postfix/main.cf)の設定
Postfixの設定ファイル(main.cf)に記載してバーチャルドメインを有効化させます。
# vi /etc/postfix/main.cf
virtual_alias_maps = hash:/etc/postfix/virtual
Virtual Domainの設定は外部ファイルで管理します。設定自体はとても簡単ですが注意点があります。
- mydomain mydestination に指定したドメインを virtual_alias_domains に含めないこと
- メールの配送先ユーザーは存在していること
Virtual Domain(/etc/postfix/virtual)の設定
# vi /etc/postfix/virtual
# Virtual Domains hogehoge.jp virtual # Virtual alias [email protected] user1 [email protected] user2
まず初めに、バーチャルドメインを記載します。
その後に受信するバーチャルドメインのメールアドレスと実際に配送するユーザー名を記載します。
Virtual Domain設定の反映
先ほど設定を加えた /etc/postfix/virtual をハッシュ化させる必要があります。postmapコマンドを利用します。
# postmap /etc/postfix/virtual
ハッシュ化すると、/etc/postfix/virtual.db というファイルが作成されます。stringsコマンドを利用するとハッシュ化された中身を見る事が可能です。
# strings /etc/postfix/virtual.db user1 [email protected] user2 [email protected] virtual hogehoge.jp
Postfixにハッシュ化したファイルを読み込ませます。
CentOS 6 以前の場合
# /etc/init.d/postfix reload
CentOS 7 以降の場合
# systemctl reload postfix
aliases の設定
Postfixのバーチャルドメインは便利なのですが、一つだけダメところは存在しているユーザー(/etc/passwordに載っている)の必要があります。ユーザーにローカル配送されると不便なので、aliases を利用して別のメールアドレスに転送します。
# vi /etc/aliases
noreplay: [email protected] webmaster: [email protected]
このaliasesファイルもハッシュ化させて、Postfixに読み込ませる必要があります
# newaliases
CentOS 6 以前の場合
# /etc/init.d/postfix reload
CentOS 7 以降の場合
# systemctl reload postfix
以上、「Postfix バーチャルドメイン(VirtualDomain)を利用し複数ドメインを受信する」という記事でした。