マクロには 1 文字の名前を付けます。マクロは ASCII 文字から任意の文字を選んで定義できますが、定義するマクロには大文字の英字だけを使用します。ただし、sendmail によってすでに使用されている M、R、L、G、および V などの文字は使用できません。小文字の英字と特殊記号は内部で使用されます。
マクロを定義する方法は、次の 2 通りです。
D で、直接指定した値を割り当てる
L で、sendmailvars データベース (NIS+ の sendmailvars テーブルまたは /etc/mail/sendmailvars ファイルのどちらか) から検索された値を割り当てる。L コマンドは Sun の独自のインタフェースとして分類される
D マクロ定義の構文は次のとおりです。
DXval |
ここで、X はマクロ名であり、val はその値です。スペースは使えません。マクロは、エスケープシーケンス $X を使ってほとんどの場所で挿入できます。
DRmailhost Dmeng.acme.com |
変数 R は mailhost の値を入れるように設定され、内部変数 m は値 eng.acme.com を入れるように設定されます。
m マクロはメールドメインを定義します。定義しなければ、ネームサービスドメインネームが最初の構成要素を除いて使用されます。たとえば、ecd.east.acme.com は east.acme.com になります。メールドメインネームを定義するさらに柔軟な方法は、L マクロ定義を使用することです。
L マクロ定義の構文は次のとおりです。
LXsearch-key |
ただし、X はマクロ名であり、search-key は sendmailvars データベースから検索されます。検索キーによって探し出されたエントリにある値が X に割り当てられます。
以下に、構成ファイルからの内部 L マクロ定義の例を示します。
Lmmaildomain |
変数 m は、検索キーとして maildomain を使用した sendmailvars データベースの値に設定されます。sendmailvars データベースのエントリが
maildomain eng.acme.com |
の場合、m の値は eng.acme.com になります。
sendmail は /etc/nsswitch.conf ファイルにある sendmailvars エントリを使用し、/etc/mail/sendmailvars ファイルと名前空間を検索する順序を決定します。