【07: キャッチオール】

■キャッチオールの設定
この設定を使用すると、設定されていないメールアカウントに送られメール全てを、ひとつのメールアカウントで受信することができます。これにより、メールの取りこぼしが防げます。

Telnet接続を行い、ルート権限に変更した後、/etc/mail フォルダに移動します。

% cd /etc/mail
次に、viなどのエディタコマンドで、 virtusertable ファイルを開きます。

% vi virtusertable
viコマンドの利用方法につきましては、UNIXコマンドの解説書等をご参照いただけますようお願い致します。
このwebマニュアルは、UNIXコマンドについて全てを解説するものではござません。
コマンドの利用方法については、UNIX関連書籍等で、お客様ご自身でお調べ頂けますようお願い致します。
以下のように記述します。
■hostname recipient
「 hostname 」には、ワイルドカードの作成対象となるホスト名、「 recipient 」には受信者のアドレスを指定します。
ファイルを保存してエディタを終了します。

データベースの再構築を実行します。
sendmail.mc ファイルに変更が加えられていた場合に make コマンドを実行すると、新しいsendmail.cf ファイルが生成されたあと、Sendmail が再起動します。

アクセス データベースの再構築だけを行う場合は、

% makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
と入力します。

以下に、キャッチオールを設定した virtusertable ファイルの例を示します。
#abc.com mappings
bob@abc.com bob@aol.com
webmaster@abc.com carol
abc.com carol
#xyz.com mappings
bob@xyz.com bob
webmaster@xyz.com john
xyz.com bob
キャッチオールは、必ず /etc/mail/virtusertable ファイルのホスト名セクションの最後に記述してください。
これは、上述のマッピングがどれも適用されない場合に使うデフォルトの受信者であることを示すためです。

■ルートのメールを管理者ユーザに転送する
セキュリティ上の理由により、ルート ユーザにはメール特権が与えられていません。
その代わりに、デフォルトの設定で、ルートあてのメッセージは管理者ユーザに配信されるようにエリアス ファイルで設定されています。

キャッチオールを作成すると、管理者ユーザにルート ユーザあてのメールを配信するエリアスの設定項目が機能しなくなります。

ルート ユーザあてのメールはキャッチオールの所有者に配信されるようになります。
このような問題を解決するには、virtmap を作成して、それぞれのドメインのメール アドレスをroot@domain.name に設定し、管理者ユーザを受信者に指定します。
プライマリ ドメインやサブホスト ドメインも同じように設定します。

virtusertable にこのような設定を記述した例を示します。
root@abc.com admin
root@xzy.com admin
abc.com carol
xyz.com bob