Sun Java System Messaging Server 6.3 管理ガイド

11.6.15 書き換えに関連するエラーメッセージの制御 ($?)

MTA には、書き換えとチャネルの照合に失敗したときに表示されるデフォルトのエラーメッセージがあります。これらのメッセージは、特定の条件下で変更することができます。たとえば、だれかが Ethernet ルーターボックスにメールを送信しようとした場合などは、「不正なホストまたはドメインが指定されています」というより「ルーターがメールを受け入れられません」というメッセージを表示した方がより適切です。

特殊なコントロールシーケンスを使って、ルールの適用に失敗した場合に出力されるエラーメッセージを変更することができます。エラーメッセージを指定するには、$? シーケンスを使用します。$? の直後からアットマーク (@)、パーセント記号 (%)、$N、$M、$Q、$C、$T、または $? までの間のテキストがエラーメッセージのテキストとして扱われます。このエラーメッセージは、書き換えの結果がどのチャネルにも一致しなかった場合に出力されます。エラーメッセージの設定は記憶され、書き換えプロセスを通じて有効となります。

$? を含むルールもほかのルールと同じように動作します。特別なケースとして、$? だけを含むルールには注意してください。この場合、アドレスのメールボックスまたはホスト部分は変更されずに書き換えプロセスが終了し、ホストがそのままチャネルテーブル内で検索されます。この検索は失敗に終わり、その結果としてエラーメッセージが返されます。

たとえば、MTA 設定ファイル内に、次に示すような最終的な書き換えルールがあるとします。

. $?Unrecognized address; contact postmaster@siroe.com

この例で、認識されないホストまたはドメイン仕様は、その失敗のプロセスにおいて、Unrecognized address; contact postmaster@siroe.com というエラーメッセージを生成します。