アドレス解析は、単純なパターンマッチングと置換システムである書き直しルールに従って行われます。sendmail は、ルールの左側 (LHS) で一致するものを探す書き直しルールセットを検索します。ルールが一致すると、その名前はルールの右側 (RHS) で置き換えられます。
書き直しルールセットはいくつかあります。書き直しセットによっては、内部で使用されて特定のセマンティクスが必要なものもあります。その他の書き直しセットは特別に割り当てられたセマンティクスを持たず、メールプログラムの定義または他の書き直しセットによって参照できます。
たとえば、Sn は、収集する現在のルールセットを n に設定します。ルールセットを再度定義すると、新しい定義が古い定義を上書きします。
R を使用してルールセットのルールを定義します。R 行の構文は次のとおりです。
Rlhs rhs comments |
この lhs は入力に適用されるパターンです。一致すれば、入力は rhs に書き直されます。comments は無視されます。
以下に、ルールの定義の例を示します。
# handle "from:<>" special case R<> $@@ turn into magic token |
1 文字以上のタブ文字でフィールドを区切らなければなりません。フィールドには空白文字を使うことができます。
メールプログラムに対するプログラムとインタフェースは、この行で定義されます。フォーマットは次のとおりです。
Mc name, c {c field=value}* |
ただし、name は (エラーメッセージに使用される) メールプログラムの名前で、field=value のペアはメールプログラムの属性を定義します。表 3-7 にフィールドを示します。
表 3-7 メールプログラム定義フィールド
フィールド |
説明 |
---|---|
A |
このメールプログラムに渡す引数ベクトル |
D |
メールプログラムの作業用ディレクトリ |
E |
このメールプログラムに渡す行末の文字列 |
F |
このメールプログラムの特殊フラグ |
L |
メッセージ本体の行の最大長 |
M |
このメールプログラムへのメッセージの最大長 |
P |
メールプログラムのパス名 |
R |
受信者名の書き直しルールセット |
S |
sendmail の新版 (バージョン 8) には、sendmail.cf ファイルのバージョンを定義するための、新しい構成オプションがあります。このオプションを使用すれば、旧バージョンの構成ファイルをバージョン 8 の sendmail で使用できます。バージョンレベルには 0 から 5 の値を設定できます。また、ベンダの定義もできます。Berkeley または Sun がベンダオプションとして有効です。構成ファイルで V オプションが定義されていない場合は、V1/Sun がデフォルトの設定となります。ベンダを定義せずに、バージョンレベルだけが設定されている場合は、Berkeley がデフォルトとして使われます。表 3-8 に有効なオプションを示します。
表 3-8 構成ファイルのバージョン
定義 |
説明 |
---|---|
V0/Sun |
ネームサービスのサポートに Solaris の拡張機能を使用しない |
V1/Sun |
ネームサービスのサポートに Solaris の拡張機能を使用する (デフォルトの設定) |
V1 |
Berkely の構成ファイルの旧版に使用 |
V5 |
Berkeley の構成ファイルの新版に使用 ($w でホストの短縮名が設定される) |
Sun がベンダとして定義されているときは、レベルの定義に使用できるのは、V0 と V1 だけです。