sendmail を SMTP モードで実行しない限り、フラグ引数の後に受信者名引数を指定できます。次に受信者名の形式を簡単に示します。
角かっこ (<>) の中の文字列は、他のすべての文字列に優先する。このルールにより、以下の例の場合、username ではなく system-name に送信し、インターネット標準に従う
username <login@system-name> |
二重引用符 (") はフレーズを引用する場合に用い、バックスラッシュ (¥) は文字を引用する場合に用います。バックスラッシュを用いると実際は、同じフレーズが異なるものとして評価されます。たとえば、user と "user" は同じですが、¥user はどちらとも異なります。
かっこ、角かっこ、および二重引用符は必ずペアになっていなければなりません。書き換えのルールはこのあとに必要な処理を制御します。
ファイルとプログラムは、正当なメッセージ受信者です。ファイルはメッセージを格納する記憶領域を提供し、プロジェクト管理や履歴に役立ちます。プログラムはさまざまな状況で受信者として便利で、たとえば、mailsort を使用してメールをソートしたり、ユーザーが不在のときに vacation プログラムで通知メッセージに応答させることができます。
ローカル名として最初の解析アルゴリズムを通して渡される名前はすべて、次の 2 つの特殊な場合に処理されます。
構成は、起動時に読み込まれる構成ファイルによって主に制御されます。メールプログラムの追加、または情報の書き換えやルーティングの変更は、再コンパイルを必要としません。構成ファイルは、マクロ定義、ヘッダー定義、メールプログラム定義、書き換えルール、オプションなどをコード化します。
マクロを使用する方法はいくつかあります。あるマクロは、sendmail がエラーメッセージの中で自分自身を識別するのに使用する名前のような、構造化されていないテキスト情報をメールシステムに送信します。また、内部では使用されず、構成ファイルで省略記法として使用されるマクロもあります。
ヘッダー宣言は、既知のヘッダー行のフォーマットを sendmail に通知します。From: 行や Date: 行など、いくつかのヘッダー行に関する情報は sendmail に組み込まれています。
ほとんどの構成済みヘッダーは、着信メッセージになければ送信メッセージに自動的に挿入されます。メールプログラムによっては抑止されるヘッダーがあります。
メールプログラムの宣言は、メールプログラムの内部名、メールプログラムに関連付けられたいくつかのフラグ、および、呼び出し時に使用される引数ベクトルを指定します。このベクトルは使用前にマクロ展開されます。
名前書き換えのルールは sendmail での名前解析の重要な部分です。これらのルールは、特定の順序で並んだパターン置換ルールのリストで、各名前に適用されます。たとえば、ルールセット 0 は使用するメールプログラムを決定します。sendmail は、解析可能な形式になるまで、メッセージを書き直します。パターンが一致すると、一致できなくなるまで、そのルールが繰り返し適用されます。
また、構成ファイルは異なるフォーマットへの名前の編集もサポートします。たとえば、次の名前を考えてみましょう。
ucsfcgl!tef |
この名前は次のようにマッピングされます。
tef@ucsfcgl.UUCP |
この結果内部構文に合わせることができます。また、特定のメールプログラムに対応して逆方向に変換することもできます。
構成ファイルから設定できるオプションもあります。これらには、各種のサポートファイルのパス名、タイムアウト、デフォルトモードなどがあります。