このサイトは、2011年6月まで http://wiredvision.jp/ で公開されていたWIRED VISIONのコンテンツをアーカイブとして公開しているサイトです。

Web2.0時代の情報発信を考える

時代が要求する情報発信型Webサイト 仮想専用サーバ「SuitePRO V2」が情報発信を加速する

バーチャルドメイン向けにメールサーバを構築する

2008年4月16日

  • 前のページ
  • 2/2

メールサーバをバーチャルドメインに最適化する方法

メールサーバの基本的な設定について動作確認ができたところで、いよいよメールサーバのバーチャルドメイン機能の設定だ。バーチャルドメインを設定するには、ネームサーバでバーチャルドメインの設定が終わっている必要がある。以前の記事で、example.com、example.netという2つのドメインを全て192.0.2.5で稼動しているサーバで行うように、ネームサーバを設定したのを思い出して欲しい。もしまだ設定していない場合は、この記事などを参考に、まずネームサーバをバーチャルドメインに対応するよう設定しておこう。

ここでは「手軽なバーチャルドメイン」として webmaster@example.com と webmaster@mail.example.com を webmaster で受け取る設定を、「バーチャルエイリアス」として上記二つのメールアドレスを使い分け、別々のユーザで受け取る設定を紹介する。

当然、実際の設定にあたっては自分が使用するドメインなどに置き換えるのを忘れないで欲しい。さらに、RFC2821などのインターネットの標準仕様では、SMTPサーバが動作するドメインではpostmaster宛てのメールアドレスを有効にすることになっている。このためバーチャルドメインの設定にあたっては、各ドメインのpostmaster宛のメールが必ずどこかのメールボックスへ保存されるようにすることも忘れないようにしよう。

さて、ではまずはじめに、手軽なバーチャルドメインについての説明をしよう。

例えば、複数のWebサイトの管理を請け負ったWebデザイナーなどが、複数のドメインへのメールを一元管理したい場合があるだろう。webmaster@example.comとwebmaster@mail.example.comを、同じwebmasterユーザで受け取ることができるようにしたいような場合だ。これは、Postfixの設定追加で簡単に実現できる。

図6 手軽なバーチャルドメイン

初期設定では、postmasterやwebmasterのようによく使われるメールアドレスについては「/etc/aliases」ファイルで rootユーザの別名として登録されている。エイリアス機能と呼ばれるもので、webmaster宛のメールがwebmasterユーザへ届くようにはなっていない。このため、初期設定のままでは、webmaster宛のメールはrootユーザへ届いてしまう。そこで、「/etc/aliases」ファイルを下記のように編集し、該当部分を変更する。これで、webmaster宛のメールはwebmasterユーザへ届くようになる。

(略)
www:            webmaster
#webmaster:      root
noc:            root
(略)

設定ができたら、newaliasesコマンドでエイリアス設定の更新をする。

[root@ns ~]# newaliases

初期状態ではwebmasterユーザはサーバへ登録されていないので、taroユーザを登録した時と同様にしてwebmasterユーザを追加すれば、webmaster宛のメールをwebmasterユーザが受け取ることができるようになる。次の設定で必要になるjiroユーザもついでに追加しておこう。

次に、Postfixの設定ファイル「/etc/postfix/main.cf」を編集する。mydestinationの項目には、SMTPサーバが受け取るドメイン名の一覧を登録するので、ここへ追加したいドメイン名を指定する。ここでは、example.comと mail.example.comを追加している。mydestinationを1行で指定することもできるし、複数行で指定することもできる。ただし、複数行で指定する場合は、その行は前の行からの継続行であることを示すために行の先頭を空白で始める必要がある。

mydestination = $myhostname, localhost.$mydomain, localhost, example.com,
      mail.example.com
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

serviceコマンドで設定内容をチェックしてから、reloadして反映する。これで、webmaster@example.comへのメールもwebmaster@mail.example.comへのメールも、webmasterユーザのメールボックスに届くようになる。

[root@ns ~]# service postfix check
[root@ns ~]# service postfix reload

バーチャルエイリアスの活用で、問い合わせメールアドレスを適切に運用する

次は、Webサイトごとに管理者が別にいる場合である。例えば、admin@example.comはtaroユーザで受け取り、admin@example.netはjiroユーザで受け取ることができるようにしたい場合だ。admin@example.comとtaroの対応関係だけならエイリアス機能で実現できる。前述の設定方法を参考に「/etc/aliases」へ「admin taro」を追加するだけだ。/etc/aliases に登録するとwebmaster@example.comもwebmaster@example.netもtaroが受け取るようになってしまう。/etc/aliasesではドメインによって受け取るユーザを別々に設定することはできない。そんなときは、Postfixのバーチャルエイリアス機能を使えば実現できる。

図7 バーチャルエイリアス

バーチャルエイリアス機能を使うためには、Postfixの設定ファイルである「/etc/postfix/main.cf」ファイルの末尾に2行追加する。「virtual_alias_domains」で追加するドメイン名を指定し、「virtual_alias_maps」でメールアドレスとサーバのユーザ名の対応関係を設定するファイルを指定する。「virtual_alias_domains」へ複数のドメインを追加したい場合は、「virtual_alias_domains = example.net,mail.example.com」のように「,」(カンマ)で区切って指定する。なお、「手軽なバーチャルドメイン」で設定したように既に「mydestination」にexample.comが指定されている場合は、「virtual_alias_domains」に同じ example.comを指定する必要はない。つまり、mydestinationとvirtual_alias_domains に同じドメインを書いてはいけないのだ。

mydestination = $myhostname, localhost.$mydomain, localhost, example.com,
      mail.example.com
(略)
virtual_alias_domains = example.net
virtual_alias_maps = hash:/etc/postfix/virtual

メールアドレスとサーバのユーザ名の対応関係を設定するには、virtual_alias_mapsで指定したファイルである「/etc/postfix/virtual」を編集する。このファイルの末尾に次のように設定を加える。見てわかるように、メールアドレスとサーバのユーザ名を同じ行に並べて記述するだけの単純なフォーマットだ。admin@example.comへのメールはtaroユーザへ、admin@example.netへのメールはjiroユーザへ届くようになる。ただし設定前に、jiroユーザを追加しておくのを忘れないように。なお、example.comと mail.example.comについては「/etc/aliases」にpostmasterが登録されているが、example.netについては postmaster宛のメールが保存される設定になっていない。ここでpostmaster@example.netもjiroへ届くようにしておこう。

admin@example.com taro
admin@example.net jiro
postmaster@example.net jiro

設定ができたら、下記のようにpostmapコマンドで「/etc/postfix/virtual」の設定を反映し、さらにPostfixの設定更新もする。

[root@ns ~]# postmap hash:/etc/postfix/virtual
[root@ns ~]# service postfix reload

設定したメールアドレスへmailコマンドでメールを送信し、設定したアカウントのメールボックスにメールが届くことを確認しよう。サーバでの確認ができたら、実際にローカルマシンのメーラから送受信ができることを確認しよう。

ここまで紹介した2つの方法以外に、ドメインごとにユーザを管理を分離するバーチャルメールボックスという方法がある。バーチャルメールボックス機能を使えば、サーバへユーザ登録をしなくてもメールが使えるようになり、大規模なサーバなどで管理するメールアドレスやバーチャルドメインの数が多い時には有効となることが多い。ただし、SMTPサーバだけでなく、POPサーバの設定も必要になるなどの手間があるなど長所短所がある。バーチャルメールボックスについては、別の資料などを参考にしていただきたい。

以上がバーチャルドメインのメールサーバを構築する方法だ。どこまでバーチャルドメインで対応するかによって、設定の手間がかなり違うが、バーチャルWebサイトのドメインにあわせたメールアドレスで受け取れるようにしたい、といった要求なら、今回紹介した方法で柔軟に対応できるはずだ。

問い合わせ窓口の運用は、その柔軟性にかかっているといってもいいだろう。お客様からのメールがペンディングしたりしないように、各ドメイン宛の問い合わせをまとめて受け取ったり、ある問い合わせ用アドレスをメーリングリストにポストするなど、さまざまな管理体系が考えられる。用途に合わせて臨機応変に対応できるバーチャルドメイン対応のメールサーバであれば盤石とも言える。

  • 前のページ
  • 2/2
フィードを登録する

前の記事

次の記事

Web2.0時代の情報発信を考える

増田(maskin)真樹

IT/NETリサーチャーを経て、ライターとして独立。多数の媒体で執筆活動後、米国シリコンバレーでガレージ起業に参画。帰国後、関心空間、nileport、ソニーblog、@cosmeなど多数のサービスに関与。