前回までと同様に、qmailの動作を設定する場合は/var/qmail/control下のファイルを状況に合わせて編集します。バーチャルドメインの追加まず、バーチャルドメインあてに来たメールを受信可能にするため、rcpthostsファイルに次の行を追加します。atmarkit.jp.atmarkit.jp/var/qmail/control/rcpthosts2行目は「○○@host1.atmarkit.jp」や「○○@mail.atmarkit.jp」のように、メールアドレスにホスト名が指定されている場合でも受け取れるようにするもので、「*.atmarkit.jp」のようなワイルドカード指定になります。必要がなければ1行目だけでも構いません。次にvirtualdomainsファイルを用意して、バーチャルドメインあてに来たメールの制御ができるように次の行を追加します。virtualdomainsファイルは標準では存在しないので、新規に作成する必要があります。example.jpドメインのメールサーバとして運用されているホスト「host1」に、atmarkit.jpドメインをバーチャルドメインメールとして追加する場合を考えます。このhost1には、「mail_user」がホームディレクトリを持つユーザーとして登録されており、このユーザーが今回追加するatmarkit.jpドメインの管理を任されたとします。この場合、次のような行をvirtualdomainsファイルに追加します。atmarkit.jp:mail_user.atmarkit.jp:mail_user/var/qmail/control/virtualdomains「.atmarkit.jp」は前述のワイルドカード指定になるため、必要に応じて追加・削除します。ファイルの編集が終わったら、変更を有効にするためにqmail-sendプロセスの再立ち上げを行います。プロセスID制御は、mail_userのホームディレクトリ下の.qmailファイルで行います。user1@atmarkit.jpを同一サーバ内のuser1、すなわちuser1@example.jpに転送する場合は、.qmail-user1ファイルを用意して次の1行を追加します。&user1または&user1@example.jp~mail_user/.qmail-user1他ホストのアドレスに転送する場合も同様です。user2@atmarkit.jpをuser2@atmarkit.co.jpに転送するには、.qmail-user2ファイルを次のようにします。&user2@atmarkit.co.jp~mail_user/.qmail-user2バーチャルドメインの管理を託されたユーザーは、自身のホームディレクトリに「.qmail-受け取りたいユーザー名」でファイルを作成し、中身を「&転送先アドレス」で記述します。qmailによるSMTPサーバの構築)、指定されたバーチャルドメイン専用の「alias」ディレクトリを1ユーザーのホームディレクトリに作成できるというわけです。/var/qmail/aliasでできることがそのまま使えます。メーリングリストの構築と運用(前編))。バーチャルドメインあてに来た、実在しないユーザー(すなわち「~/mail_user/.qmail-ユーザー名」ファイルが存在しない)のメールをuser3@atmarkit.co.jpで代行受信させるには次のようにします&user3@atmarkit.co.jp~/mail_user/.qmail-default/var/qmail/aliasでできることがバーチャルドメインでそのまま使えるということは、/var/qmail/aliasで用意しなければならなかった.qmailファイルを、同じように作成しておく必要性があるということを意味します。最低限、.qmail-postmasterや.qmail-rootを用意しておきましょう。/var/qmail/alias下の同名ファイルにシンボリックリンクを張るだけでも構いませんし、バーチャルドメインの管理者を指定しておくというのも悪い選択ではありません。特定ユーザーのみの場合virtualdomainsファイルは、次のように書くこともできます。先の例で使用した「user2@atmarkit.jpをuser2@atmarkit.co.jpに転送」の場合、virtualdomainsファイルは次のように記述することもできます。user2@atmarkit.jp:mail_user/var/qmail/control/virtualdomains.qmail-user2ファイルを同じように、~mail_user/ディレクトリ下に作成します。メーリングリストの構築と運用(前編))に書き直し、ローカル配信に切り替えるということです。virtualdomainsファイルの記述が「suffix:prefix」で指定されている場合にuser4@suffixあてのメールが配信されてくると、アドレスを「prefix-user4@suffix」に書き直してローカル配信に切り替えます。prefix-user4は拡張メールアドレスとして、prefix/ディレクトリ下の.qmail-user4ファイルの制御下に入ります。それを応用して、prefixにあらかじめ拡張アドレスを指定しておいたらどうなるでしょうか。atmarkit.jp:mail_user-control1.atmarkit.jp:mail_user-control1/var/qmail/control/virtualdomainsこの場合、user5@atmarkit.jpあてに来たメールは、あて先がmail_user-control1-user5@atmarkit.jpに書き換えられることになります。すると、~mail_user/の.qmail-control1-user5ファイルで転送先を指定すればいいことになります。複雑な作業をしているように見えるこの方法には、メリットがあります。virtualdomaisファイルを用いたバーチャルドメインでは、管理者が2つのバーチャルドメインを管理する場合、同じバーチャルユーザーを別々の方法で制御することができません。user6@atmarkit.jpとuser6@atmarkit.co.jpをバーチャルドメインメールとして使用して、両ドメインともmail_userユーザーで管理し、かつuser6@atmarkit.jpはtest1@example.jpへ転送し、user6@atmark.co.jpはtest2@example.jpへ転送しなくてはいけない場合です。いままでの方法では次のような記述が考えられます。atmarkit.jp:mail_user.atmarkit.jp:mail_useratmarkit.co.jp:mail_user.atmarkit.co.jp:mail_user/var/qmail/control/virtualdomainsこの場合、user6@atmarkit.jpアドレス用に.~mail_user/qmail-user6ファイルを「&test1@example.jp」の内容で作成します。使用されているため、test2@example.jpへ転送するすべがありません。複数のバーチャルドメインを1人のユーザーに管理させ、それぞれのバーチャルドメインのユーザーを独立して定義する場合は、prefixに拡張アドレスを使用します。今回の例では、atmarkit.jp:mail_user-control1.atmarkit.jp:mail_user-control1atmarkit.co.jp:mail_user-control2.atmarkit.co.jp:mail_user-control2/var/qmail/control/virtualdomainsとし、メールアドレス「user6@atmarkit.jp」は~mail_user/.qmail-control1-user6ファイル、メールアドレス「user6@atmarkit.co.jp」は~mail_user/.qmail-control2-user6ファイルを使って制御すれば、目的を果たすことができます。以上が、virtualdomainsファイルを使ったバーチャルドメインメールの構築法です。ここで、「この方法ではあらかじめ何らかのメールアドレスを持っていることが最低条件になるのでは?」と思われた方、正解です。ここまでは、バーチャルドメインメールをいかに転送させるかという観点で説明してきました。それがqmailでバーチャルドメインを扱ううえでの動作原理だからです。/etc/passwordによる認証やほかのメールサーバに依存することなくユーザーを定義する、つまり「FTPやtelnetは要らないからメールだけ使えるユーザーをバーチャルドメインごとに作りたい!」という要求もあるでしょう。メールボックスの振り分けが可能かどうかから見ていきましょう(注)。注:バーチャルドメインごとに定義される、メールだけ使えるユーザーを以降「バーチャルユーザー」と呼ぶことにします。バーチャルドメインあてに来たメールの最終的な制御には、.qmailファイルを使用します。.qmailファイルは単に転送先を指定するだけでなく、ローカルのファイルや個別のMaildirに配信することも可能です。user2@atmarkit.jpあてのメールを~mail_user/Maildir.user2/に保存する場合は、次のように.qmail-user2ファイルを作成します。./Maildir.user2/~mail_user/.qmail-user2次に、mail_user権限でMaildir.user2ディレクトリをMaildir形式で作成します。Maildir.user2として、オーナーを変更することをお忘れなく。Mailbox形式で保存する場合は、.qmailの中身を変えます。./Mailbox.user2~mail_user/.qmail-user2Mailboxファイルは、最初のメールが配送されたときに自動で作成されます。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。