sendmailのバーチャルドメイン対応
sendmailはバーチャルドメインに対応しています。
ここではバーチャルドメインに対応させるための設定について解説します。
複数のドメインを利用したい場合
「xxx@abc.ne.jp」というメールアドレス以外に、「test@xyz.ne.jp」を
追加します。
※ネームの解決はすでに行われているものとします。
1.「/etc/sendmail.cw」に追加したいドメイン名を追加します。
# vi sendmail.cw
エディタ入力画面
abc.ne.jp
xyz.ne.jp
|
2.元となる.mc ファイルをコピーします。
作業用のディレクトリsiteへ移動してそこへ.mcファイルをコピーします。
# cd site
# cp /usr/local/sendmail/sendmail-8.9.3/cf/cf/generic-bsd-4.4.mc sendmail.mc
※linuxの場合cp ../cf/tcpproto.mc sendmail.mcです
|
この設定の問題点
この設定では「@」の前の部分(つまり、「xxx」の部分)だけを判別して、メールを
ユーザーへと配送します。したがって、「info@abc.abc.ne.jp」「info@xyz.ne.jp」で別
のユーザー宛てに届くようにするというような設定ができません。
ドメイン名ごとに配送するユーザーを指定したい
「abc.ne.jp」をホスト名として運用されているサーバー上で「xyz.ne.jp」で届いたメール
をすべて「sample」というユーザーへ届くように設定したい場合は以下のような設定となり
ます。
(※sendmail.cwの設定はすでに終了しているものとします。まだ修正が終了していない場合は、こちらをご覧ください)
1.作業用ディレクトリの作成
ここでは作業用ディレクトリとして、/etc/mail ディレクトリを作成して作業しています。
# mkdir /etc/mail
# cd /etc/mail
|
2.「virtusertable.txt」テーブルの作成
メールアドレスとアカウントの関連付けを指定する、「virtual.txt」テーブルを作成します。
# cat >virtusertable.txt
# @xyz.ne.jp
ctl+Dを押して入力モードから抜けます
|
「cat」コマンドを使用してvirtusertable.txtを作成しました。
-- 今回のvirtusertable.txtの具体入力例---
@xyz.ne.jp sanple
--------------------------------------
最初にメールアドレス、次に設定しているアカウント名、あるいは転送先のメールアドレスを書きます。
この場合はxxxxx@xyz.ne.jpというメールアドレスのメールはすべて「sanple」というユーザーに
配信されるということになります。
3 virtusertavbe.txtをデータベース化します
作成した「virtusertable.txt」を「makemap」コマンドを使用してデータベースにします。
# makemap hash virtusertable < virtusertable.txt
|
これで「virtusertable.db」というデータファイルができたはずです。
この作成されたファイルを/etcへコピーします。
# cp /etc/mail/virtusertable.db/etc/
|
ここまでの作業が完了したら、sendmailを再起動します。
4.sendmailの再起動
以下のコマンドを使用してsendmailを再起動してください
ハングアップさせると、sendmailは一度動作を停止し、設定ファイルを読みに行きます。
そして動作を再開させます。
特に問題がなければこれで終了です。
|