メールシステムの管理

アドレス書き直しルールの右側

書き直しルールの左側が一致すると、右側で入力が置き換えられます。ドル記号から始めない限り、トークンは右側から直接コピーされ、この場合、マクロとして処理されて展開されます。

表 3-12 に、より複雑な置換のメタ記号を示します。

表 3-12 sendmail の右側のメタ記号

記号 

説明 

$x

マクロ x を展開する

$n

LHS から未定義のトークン n を置き換える。n は数字

$>n

ルールセット n を呼び出す。n は数字

$#mailer

mailer に対する名前解決を行う

$@host

host を指定する

$:user

user を指定する

$[host$]

一次ホスト名にマップする 

${x name$}

NIS マップまたは NIS+ テーブル $x から名前をマップする。マップ名が rev で始まる場合、sendmail は別名を逆にする

$n (n は数字) 構文は、LHS で一致した $+$-$*$‾x から対応する値を置き換えます。これは任意の場所で使用できます。

$>n 構文は、通常行の残りを置換してからルールセット n に渡します。ルールセット n の最後の値は次に (プロシージャまたは関数呼び出しなど) このルールの置き換えになります。

ルールセット 0 では $# 構文だけを使用します。ルールセットの評価はすぐ中断され、sendmail にその名前が完全であることを示します。完全な構文は次のとおりです。


$#mailer$@host$:user

これは、メールプログラムの指示に必要な 3 要素 {mailerhostuser} を指定します。メールプログラムには、さらに多くの処理が行われるものもがあります。たとえば、ローカル名が別名になることがあります。

右辺の前にも $@ または $: を付け、評価を制御できます。$@ プレフィックスにより右辺の残りは値に戻ります。$: プレフィックスによりルールはすぐに終了しますが、ルールセットは続きます。したがって、これは、ルールを 1 回の適用に制限するのに使用できます。両プレフィックスとも、右辺の展開の結果には影響しません。

$@ および $: は、次のように $> 機能の前に置くことができます。


R$+	$:$>7$1

これは、あらゆるものに対応し、それをルールセット 7 に渡し、続行します。$: は無限ループを回避するために必要です。$[host]$ 構文は、ホスト名を「公式」または一次ホスト名に置き換えます。一次ホスト名とは、hosts.byname NIS マップの 1 番目に表示されているホスト名、または NIS を実行していない場合は /etc/hosts の 1 番目に表示されているホスト名です。$[host] 構文はホストの略称を削除するのに使用されます。${x name $} 構文は、マクロ $x で示された nis_map_name の結果により文字列を置換します。

以下の規則をルールセット 0 に追加して、それ自体ではメールをルーティングできない可能性のあるシステム (ルーターなど) から、メールホストにメールを転送できます。


R$*<@$*.$m>		$#ether $@mailhost $:$1<@$2.$m>