VISIONのコンテンツをアーカイブとして公開しているサイトです。(0)フィード2/2メールサーバをバーチャルドメインに最適化する方法メールサーバの基本的な設定について動作確認ができたところで、いよいよメールサーバのバーチャルドメイン機能の設定だ。バーチャルドメインを設定するには、ネームサーバでバーチャルドメインの設定が終わっている必要がある。以前の記事で、example.com、example.netという2つのドメインを全て192.0.2.5で稼動しているサーバで行うように、ネームサーバを設定したのを思い出して欲しい。設定していない場合は、この記事などを参考に、まずネームサーバをバーチャルドメインに対応するよう設定しておこう。受け取る設定を、「バーチャルエイリアス」として上記二つのメールアドレスを使い分け、別々のユーザで受け取る設定を紹介する。実際の設定にあたっては自分が使用するドメインなどに置き換えるのを忘れないで欲しい。RFC2821などのインターネットの標準仕様では、SMTPサーバが動作するドメインではpostmaster宛てのメールアドレスを有効にすることになっている。このためバーチャルドメインの設定にあたっては、各ドメインのpostmaster宛のメールが必ずどこかのメールボックスへ保存されるようにすることも忘れないようにしよう。はじめに、手軽なバーチャルドメインについての説明をしよう。複数のWebサイトの管理を請け負ったWebデザイナーなどが、複数のドメインへのメールを一元管理したい場合があるだろう。webmaster@example.comとwebmaster@mail.example.comを、同じwebmasterユーザで受け取ることができるようにしたいような場合だ。これは、Postfixの設定追加で簡単に実現できる。rootユーザの別名として登録されている。エイリアス機能と呼ばれるもので、webmaster宛のメールがwebmasterユーザへ届くようにはなっていない。このため、初期設定のままでは、webmaster宛のメールはrootユーザへ届いてしまう。そこで、「/etc/aliases」ファイルを下記のように編集し、該当部分を変更する。これで、webmaster宛のメールはwebmasterユーザへ届くようになる。root(略)設定ができたら、newaliasesコマンドでエイリアス設定の更新をする。newaliases初期状態ではwebmasterユーザはサーバへ登録されていないので、taroユーザを登録した時と同様にしてwebmasterユーザを追加すれば、webmaster宛のメールをwebmasterユーザが受け取ることができるようになる。次の設定で必要になるjiroユーザもついでに追加しておこう。次に、Postfixの設定ファイル「/etc/postfix/main.cf」を編集する。mydestinationの項目には、SMTPサーバが受け取るドメイン名の一覧を登録するので、ここへ追加したいドメイン名を指定する。mail.example.comを追加している。mydestinationを1行で指定することもできるし、複数行で指定することもできる。複数行で指定する場合は、その行は前の行からの継続行であることを示すために行の先頭を空白で始める必要がある。$mydomainserviceコマンドで設定内容をチェックしてから、reloadして反映する。これで、webmaster@example.comへのメールもwebmaster@mail.example.comへのメールも、webmasterユーザのメールボックスに届くようになる。reloadバーチャルエイリアスの活用で、問い合わせメールアドレスを適切に運用する次は、Webサイトごとに管理者が別にいる場合である。admin@example.comはtaroユーザで受け取り、admin@example.netはjiroユーザで受け取ることができるようにしたい場合だ。admin@example.comとtaroの対応関係だけならエイリアス機能で実現できる。taro」を追加するだけだ。登録するとwebmaster@example.comもwebmaster@example.netもtaroが受け取るようになってしまう。/etc/aliasesではドメインによって受け取るユーザを別々に設定することはできない。そんなときは、Postfixのバーチャルエイリアス機能を使えば実現できる。バーチャルエイリアスバーチャルエイリアス機能を使うためには、Postfixの設定ファイルである「/etc/postfix/main.cf」ファイルの末尾に2行追加する。「virtual_alias_domains」で追加するドメイン名を指定し、「virtual_alias_maps」でメールアドレスとサーバのユーザ名の対応関係を設定するファイルを指定する。example.net,mail.example.com」のように「,」(カンマ)で区切って指定する。example.comを指定する必要はない。同じドメインを書いてはいけないのだ。hash:/etc/postfix/virtualメールアドレスとサーバのユーザ名の対応関係を設定するには、virtual_alias_mapsで指定したファイルである「/etc/postfix/virtual」を編集する。このファイルの末尾に次のように設定を加える。見てわかるように、メールアドレスとサーバのユーザ名を同じ行に並べて記述するだけの単純なフォーマットだ。admin@example.comへのメールはtaroユーザへ、admin@example.netへのメールはjiroユーザへ届くようになる。設定前に、jiroユーザを追加しておくのを忘れないように。postmaster宛のメールが保存される設定になっていない。ここでpostmaster@example.netもjiroへ届くようにしておこう。jiro設定ができたら、下記のようにpostmapコマンドで「/etc/postfix/virtual」の設定を反映し、さらにPostfixの設定更新もする。reload設定したメールアドレスへmailコマンドでメールを送信し、設定したアカウントのメールボックスにメールが届くことを確認しよう。サーバでの確認ができたら、実際にローカルマシンのメーラから送受信ができることを確認しよう。ここまで紹介した2つの方法以外に、ドメインごとにユーザを管理を分離するバーチャルメールボックスという方法がある。バーチャルメールボックス機能を使えば、サーバへユーザ登録をしなくてもメールが使えるようになり、大規模なサーバなどで管理するメールアドレスやバーチャルドメインの数が多い時には有効となることが多い。SMTPサーバだけでなく、POPサーバの設定も必要になるなどの手間があるなど長所短所がある。バーチャルメールボックスについては、別の資料などを参考にしていただきたい。以上がバーチャルドメインのメールサーバを構築する方法だ。どこまでバーチャルドメインで対応するかによって、設定の手間がかなり違うが、バーチャルWebサイトのドメインにあわせたメールアドレスで受け取れるようにしたい、といった要求なら、今回紹介した方法で柔軟に対応できるはずだ。問い合わせ窓口の運用は、その柔軟性にかかっているといってもいいだろう。お客様からのメールがペンディングしたりしないように、各ドメイン宛の問い合わせをまとめて受け取ったり、ある問い合わせ用アドレスをメーリングリストにポストするなど、さまざまな管理体系が考えられる。用途に合わせて臨機応変に対応できるバーチャルドメイン対応のメールサーバであれば盤石とも言える。2/2フィードを登録するWeb2.0時代の情報発信を考える増田(maskin)真樹IT/NETリサーチャーを経て、ライターとして独立。nileport、ソニーblog、@cosmeなど多数のサービスに関与。