sendmail.cf および submit.cf ファイル
目的
SendMail コマンドの構成情報が入っています。
説明
/etc/mail/sendmail.cf 構成ファイルおよび /etc/mail/submit.cf 構成ファイルには、 sendmail command.These ファイルには、ホスト名とドメイン、および sendmail ルール・セットなどの情報が含まれています。
構成ファイルは、以下の機能を実行します。
- 実行中のメーラー・プログラムのタイプに関する情報を保管します。
- SendMail コマンドがメッセージ内のアドレスを再書き込みする方法を定義します。
- 以下の環境での SendMail コマンドの動作方法を定義します。
- ローカル・メール配信
- TCP/IP を使用したローカル・エリア・ネットワークの配信
- 基本ユーティリティー・ネットワーク (BNU) を使用したリモート・デリバリー
ご使用の環境にこれらのタイプのメール配信のみが含まれている場合は、提供されている /etc/mail/sendmail.cf ファイルまたは /etc/mail/sendmail.cf ファイルを使用できますが、変更はほとんどありません。
制御線
構成ファイルは一連の制御行で構成され、各制御行は、残りの行の使用方法を定義する単一文字で始まります。 スペースまたはタブで始まる行は継続行です。 ブランク行および # (ポンド記号) で始まる行はコメントです。 制御行は、以下を定義するために使用されます。
これらの制御回線タイプのそれぞれについて、以下で詳しく説明します。
ルールの再書き込み
SendMail コマンドは、さまざまな形式でアドレスを受信します。これは、メール・メッセージを配信するために、メール・プログラムごとに異なる形式を使用するためです。 SendMail コマンドは、使用されているメーラー・プログラムのメッセージを経路指定するために必要な形式にアドレスを変更します。 この変換を実行するために、 SendMail コマンドは、構成ファイルに定義されている一連の再書き込み規則 ( ルール・セット) を使用します。 再書き込みルールの形式は以下のとおりです。
Snumber
Rbefore after
ここでnumberこれがどのルール・セットであるかを示す、ゼロ以上の整数です。beforeおよびafter特定の文字パターンを表す記号式です。 以下で始まる行R式を書き直すことを意味しますbefore式と同じ形式になります。afterSendmail は、一連の再書き込みルールをスキャンして、ルールの左側 (LHS) に一致するものを探します。 ルールが一致すると、アドレスはルールの右側 (RHS) に置き換えられます。
sendmail コマンドを使用してインストールされた /etc/mail/sendmail.cf および /etc/mail/submit.cf ファイルには、ドメイン・アドレス構造を使用して BNU および TCP/IP ネットワークの変換を実行するための十分な規則が含まれています。 異なるアドレッシング方式を使用するシステムに接続しない限り、これらの規則を変更する必要はありません。
$x 形式のマクロ展開は、構成ファイルの読み取り時に実行されます。 形式 $& x の拡張は、やや汎用性の低いアルゴリズムを使用して、実行時に実行されます。 この形式は、実行時に変更される $h などの内部定義マクロを参照することのみを目的としています。
再書き込み規則の左側の方向 (LHS)
書き直し規則の左側にパターンが含まれています。 通常の単語は直接一致します。 メタシンタックスは、ドル記号を使用して導入されます。 メタシンボルは以下のとおりです。
| メタシンボル | 意味 |
|---|---|
| $* | 0 個以上のトークンに一致 |
| $+ | 1 つ以上のトークンに一致 |
| $- | 1 つのトークンのみに一致 |
| $=X | クラス X 内のいずれかの句に一致します。 |
| $~X | クラス X にない任意の単語に一致します。 |
これらのいずれかが一致した場合、右側のシンボル $N に割り当てられて置換されます。ここで、 N は LHS 内のインデックスです。 例えば、LHS の場合は、以下のようになります。
$-:$+
入力に適用されます。
UCBARPA:linda
ルールは一致し、RHS に渡される値は以下のようになります。
$1 UCBARPA
$2 linda
書き直し規則の右辺 (RHS)
再書き込み規則の左側が一致すると、入力は削除され、右側に置き換えられます。 トークンは、ドル記号で始まっていない限り、RHS から直接コピーされます。 メタシンボルは以下のとおりです。
| メタシンボル | 意味 |
|---|---|
| ¥ n | LHS からの無期限トークン N の置換 |
| $[名前$] | 名前の正規化 |
| $(map key$@引数 $:デフォルト $) | 汎用キー・マッピング関数 |
| $>n | 「呼び出し」ルール・セット N |
| $#メーラー | メーラーに解決 |
| $@ホスト | ホストの指定 |
| $:ユーザー | ユーザーを指定 |
$n 構文は、LHS 上の $+、 $-、 $*、 $=、または $~ の一致の対応する値を置換します。 これはどこでも使用できます。
$[と $] で囲まれたホスト名は、ホスト・データベースで検索され、正規名に置き換えられます。 例えば、 $[merlin] は merlin.magician になり、 $[[128.32.130.2]$] は king.arthurになります。
$( ... $) 構文は、より一般的な形式のルックアップです。暗黙的なマップの代わりに名前付きマップを使用します。 ルックアップが見つからない場合は、示されているデフォルトが挿入されます。デフォルトが指定されておらず、一致するルックアップがない場合は、値は変更されません。 引数は、使用できるようにマップに渡されます。
$> n 構文を使用すると、行の残りの部分が通常どおり置換され、ルール・セット n に引数として渡されます。 ルール・セット n の最終値が、このルールの置換になります。 $> 構文は、右側の先頭でのみ使用できます。$@ または $: のみを前に付けることができます。
$# 構文は、ルール・セット 0 またはルール・セット 0 のサブルーチンでのみ使用する必要があります。 これにより、ルール・セットの評価が即時に終了し、アドレスが完全に解決されたことを SendMail にシグナル通知します。 完全な構文は次のとおりです。
$#mailer $@host $:user
これは、メーラーを送信するために必要な {mailer, host, user} 3 タプルを指定します。 メーラーがローカルの場合、ホスト部分は省略できます。 メーラーは単一の単語でなければなりませんが、ホストとユーザーはマルチパートの場合があります。 メーラーが組み込み IPC メーラーである場合、ホストは、MX (マシン交換) レコードとまったく同じように、最初の作業アドレスの順序で検索されるホストのコロン区切りリストにすることができます。 ユーザーは、後でメーラー固有のエンベロープ再書き込みセットによって再書き込みされ、$u マクロに割り当てられます。 特殊なケースとして、$# の値が「local」で、$: 値の先頭文字が「@」の場合、「@」は除去され、 SendMail がルール・セット 5 の処理を行わないようにするフラグがアドレス記述子に設定されます。
通常、一致するルールは再試行されます。つまり、ルールは失敗するまでループします。 この動作を変更するために、RHS の前に $@ または $: を付けることもできます。 $@ 接頭部を使用すると、ルール・セットは RHS の残りの部分を値として返します。 $: 接頭部を使用すると、ルールは即時に終了しますが、ルール・セットは続行します。これは、ルールの継続的な適用を回避するために使用できます。 続行する前に、接頭部が除去されます。
R$+ $: $>7 $1任意のものと一致し、それをルール・セット 7 に渡し、続行します。$: は、無限ループを回避するために必要です。
置換は記述されている順序で行われます。つまり、LHS からのパラメーターが置換され、ホスト名が正規化され、「サブルーチン」が呼び出され、最後に $#、$@、および $: が処理されます。
再書き込みルール・セットのセマンティクス
特定のセマンティクスを持つ再書き込みセットが 5 つあります。
local-part@host-domain-specルール・セット 3 は、 SendMail によって適用されてから、任意のアドレスで何かを実行します。
「@」記号が指定されていない場合、送信者アドレスから host-domain-spec を付加できます (「Rewrite Set Semantics」のボックス「D」) (送信側メーラーに対応するメーラー定義に C フラグが設定されている場合)。
ルール・セット 0 は、実際に受信者を指定するアドレスに対して、ルール・セット 3 の後に適用されます。 {mailer, host, user} トリプルに解決される必要があります。 メーラーは、構成ファイルからメーラー定義に定義する必要があります。 ホストは、指定されたメーラーの argv 拡張で使用するために、$h マクロに定義されます。
IPC メーラー
いくつかの特殊な処理は、ルール・セット 0 が IPC メーラー (つまり、M 構成行のパスとして "[IPC]" がリストされているメーラー) に解決される場合に発生します。 「$@」の後に渡されたホスト名で MX 拡張が実行されます。これにより、DNS で名前が検索され、代替配信サイトが検出されます。
ホスト名は、大括弧で囲んだドット付きクワッドとして指定することもできます。以下に例を示します。
[128.32.149.78]
これにより、数値が TCP/IP ホスト・アドレスに直接変換されます。
「$@」の後に渡されるホスト名は、コロンで区切られたホストのリストにすることもできます。 それぞれの MX は個別に拡張され、結果は (基本的に) 1 つの長い MX リストを作成するために連結されます。 ここでの意図は、プライベート内部ネットワーク用に DNS で公開されていない「偽」MX レコードを作成することです。
[any.internet.addr]sendmail.cf ファイルと submit.cf ファイルの中のマクロ
/etc/mail/sendmail.cf ファイルおよび /etc/mail/submit.cf ファイル内のマクロは、 sendmail コマンドによって解釈されます。 マクロは、値またはストリングを表すシンボルです。 マクロは、次のものによって定義されます。Dコマンドを /etc/mail/sendmail.cf ファイルおよび /etc/mail/submit.cf ファイルに入れます。
D-マクロの定義
マクロの名前には、単一文字または {braces}の語を使用します。 単一文字の名前は ASCII セット全体から選択できますが、ユーザー定義マクロは大文字のセットからのみ選択する必要があります。 小文字と特殊記号は内部で使用されます。 小文字または句読文字で始まるロング・ネームは、 SendMailで使用するために予約されているため、ユーザー定義のロング・マクロ名は大文字で始める必要があります。
Dxvalここでxマクロの名前 (単一文字または中括弧内のワードの場合があります)。val値を指定する必要があります。 マクロ値に実際には属していないスペースがあってはなりません。
マクロは、構成体 $x を使用して補間されます。ここで、x は補間されるマクロの名前です。 この補間は、M 行を除き、構成ファイルの読み取り時に行われます。 特殊な構文 $& x を R 行で使用して、据え置き補間を行うことができます。
$?x text1 $| text2 $.これは、マクロ $x が設定されている場合は text1 を補間し、設定されていない場合は text2 を補間します。 "else" ($|) 文節は省略できます。
小文字のマクロ名は、 SendMailとの間で情報を受け渡すために使用される特殊なセマンティクスを持つように予約されています。特殊文字は、条件を提供するために予約されています。 大文字の名前 (つまり、$A から $Z) は、特に構成ファイルの作成者用に予約されています。
以下のマクロは、メール・プログラムまたはその他のコンテキストの argv への補間のために、 SendMail によって内部的に定義または使用 (あるいはその両方) されます。 - のマークが付けられたものは SendMailに渡される情報、 = のマークが付けられたものは SendMailに渡される情報、およびマークが付けられていないマクロは SendMail から渡されますが、それ以外の場合は内部で使用されません。
| マクロ | 定義 |
|---|---|
| $_ | RFC1413-validation & IP ソース経路 (V8.1 以上)。 |
| $a (A) | RFC822 形式の起点日付。 |
| ${auth_authen} | 認証によって決定されたクライアントの認証資格情報 (成功した場合にのみ設定されます)。 形式は使用されるメカニズムによって異なり、 user、 user@realm、または類似のもの (SMTP AUTH のみ) のいずれかになります。 |
| ${auth_author} | 許可 ID。これは、SMTP MAIL コマンドの AUTH= パラメーターです (指定されている場合)。 |
| ${alg_bits} | TLS 接続に使用される対称暗号化アルゴリズムの最大鍵の長さ (ビット)。 これは、輸出規制アルゴリズムの場合は、 ${cipher_bits}に保管されている有効な鍵の長さより短い可能性があります。 |
| ${addr_type} | 現在再書き込みが行われているアドレスのタイプ。 このマクロは最大 3 文字で、最初の文字は E または 時間 (エンベロープ/ヘッダー・アドレスの場合)、2 番目の文字はスペース、3 番目の文字は S または R (送信側/受信側アドレスの場合) のいずれかです。 |
| ${auth_type} | SMTP 認証に使用されるメカニズム (成功した場合にのみ設定されます)。 |
| $b | RFC822 形式の現在日付。 |
| $(ボディタイプ) | ESMTP 本文 パラメーター。 |
| ¥ B | BITNET リレー。 |
| $c (c) | ホップ・カウント。 |
| $(クライアント・アドレス) | 接続ホストの IP アドレス。 |
| ${cert_issuer} | 提示された証明書 (証明書発行者) に署名した CA (認証局) の DN (識別名) (STARTTLS のみ)。 |
| ${cert_md5} | 提示された証明書の MD5 ハッシュ (STARTTLS のみ)。 |
| $(クライアント名) | 接続するホストの正規名。 |
| $(クライアント・ポート) | 接続ホストのポート名。 |
| $(クライアント解決) | $(クライアント名)の解決呼び出しの結果を保持します。 |
| ${cert_subject} | 提示された証明書の DN (証明書サブジェクトと呼ばれる) (STARTTLS のみ)。 |
| $(currHeader) | 引用符付きストリングとしてのヘッダー値。 |
| ${cipher} | 接続に使用される暗号スイート。例えば、 EDH-DSS-DES-CBC3-SHA、EDH-RSA-DESCBC-SHA、 DES-CBC-MD5、および DES-CBC3-SHA (STARTTLS のみ)。 |
| ${cipher_bits} | TLS 接続に使用される対称暗号化アルゴリズムの有効な鍵の長さ (ビット単位)。 |
| ${client_connections} | クライアント IP アドレスの SMTP サーバーで開かれている接続の数。 |
| ${client_flags} | ClientPortOptionsのModifier=の部分で指定されるフラグは、フラグ同士がスペースで区切られ、大文字のフラグは二重になります。 つまり、Modifier=hAは、{client_flags}client_flags}の中でh AAと表現される。これは、ルールセットの中でフラグをテストする ために必要である。 |
| ${client_ptr} | クライアント IP アドレスについての PTR ルックアップの結果。 注: これは、 ${client_resolve} が OK の場合にのみ、 ${client_name} と同じです。 これは SMTP サーバーでのみ定義されます。
|
| ${client_rate} | ConnectionRateWindowSizeで指定された時間間隔における、クライアントIPアドレスへの着信コネクション数。 |
| ${client_resolve} | ${client_name}の解決呼び出しの結果を保持します。 可能な値は次のとおりです。
|
| ${cn_issuer} | 提示された証明書に署名した CA の CN (共通名) (STARTTLS のみ)。 注: CN を正しく抽出できない場合は、検出されたエラーに基づいて、以下のいずれかのストリングに置き換えられます。
最後のケースでは、他の (特定されていない) エラーが発生しました。 |
| ${cn_subject} | 提示された証明書の CN (共通名) (STARTTLS のみ)。 後継製品については、 ${cn_issuer} を参照してください。 |
| ${currHeader} | 引用符付きストリングとしてのヘッダー値 (MAXNAME に切り捨てられる可能性があります)。 このマクロは、ヘッダー検査ルール・セットでのみ使用可能です。 |
| ¥ C | DECnet リレーのホスト名 (m4 技法)。 |
| 年 | UNIX の場合 (CTIME) (3) 形式の enrealThe の現在日付。 |
| $(デーモンアドレス) | デーモンが接続のために listen している IP アドレス。 DaemonPortOptionsが設定されていない限り、これは'0.0.0.0となる。 |
| $(デーモン・ファミリー) | デーモンがネットワーク接続を受け入れている場合、これはネットワーク・ファミリーです。 |
| $(デーモン・フラグ) | DaemonPortOptionsの Modifiers= 部分によって指定されるデーモンのフラグ。フラグは、スペースによって互いに分離され、大文字フラグは二重になります。 |
| $(デーモン情報) | デーモンに関する情報 (テキスト・ストリング)。 例えば、 SMTP+queueing@00などです。 |
| $(デーモン名) | DaemonPortOptionsName=サブオプションのデーモン名。 このサブオプションを使用しない場合、デフォルトはデーモン#に設定されます。ここで、# はデーモン番号です。 |
| $(デーモン・ポート) | デーモンが接続を受け入れ中のポート。 DaemonPortOptions が設定されていない限り、多くの場合、これはデフォルトの 25に設定されます。 |
| $(deliveryMode) | SendMailによって使用される現在の配信モード。 |
| $e (E) | 廃止。 代わりにSmtpGreetingMessageオプションを使用。 |
| $(envid) | 元の DSN エンベロープ ID。 |
| $E (E) | X400 リレー (未使用) (m4 技法)。 |
| ¥ f | 送信者のアドレス。 |
| ¥ F | FAX リレー (m4 技法)。 |
| ¥ g | 受信者に対する送信者のアドレス。 |
| ¥ h | 受信側アドレスのホスト部分。 |
| ${hdrlen} | ${currHeader} に保管されているヘッダー値の長さ (切り捨ての前)。 この値が MAXNAME 以上の場合、ヘッダーは切り捨てられています。 |
| ${hdr_name} | 現在のヘッダー検査ルール・セットが呼び出されたヘッダー・フィールドの名前。 これは、デフォルトのヘッダー検査ルール・セットがヘッダーの名前を取得する場合に役立ちます。このマクロは、ヘッダー検査ルール・セットでのみ使用可能です。 |
| $H | メールハブ (m4 技法)。 |
| $(hdrlen) | ヘッダー値の長さ。 $(currHeader)に格納されます。 |
| $(hdr_name) | 現在のヘッダー検査ルール・セットが呼び出されたヘッダー・フィールドの名前。 |
| $i (I) | キュー ID。 |
| $(if_addr) | ループバック・ネット内にある場合を除き、着信接続インターフェースの IP アドレス。 |
| ${if_addr_out} | ループバック・ネット内にある場合を除き、発信接続のインターフェースの IP アドレス。 IPv6 アドレスには、アドレスの前に IPv6: のタグが付けられます。 |
| ${if_family} | ループバック・ネット内にある場合を除き、着信接続のインターフェースの IP ファミリー。 |
| ${if_family_out} | ループバック・ネット内にある場合を除き、発信接続のインターフェースの IP ファミリー。 |
| $(名) | 着信接続インターフェースの名前です。 |
| ${if_name_out} | 発信接続のインターフェースの名前です。 |
| $j= | 公式の正規名。 |
| $k | UUCP ノード名 (V8.1 およびそれ以上)。 |
| ${load_avg} | 現在の負荷平均。 |
| ${msg_id} | Message-Id: ヘッダーの値です。 |
| ${msg_size} | SIZE= パラメーターの値。通常は、メッセージが収集される前の (ESMTP ダイアログ内の) メッセージのサイズです。その後、 SendMail コマンドによって計算されるメッセージ・サイズです。 |
| ${nbadrcpts} | 単一メッセージの不良受信者の数。 |
| ${nrcpts} | 単一メッセージの検証済み受信者の数。 注: 受信者の検証は チェックポイント _rcpt が呼び出された後に行われるため、このルール・セットの値は、予期される値より 1 つ少なくなります。
|
| ${time} | 時刻 (3) 関数の出力。つまり、0 時間 0 分 0 秒、1970 年 1 月 1 日、協定世界時 (UTC) 以降の秒数。 |
| ${tls_version} | 接続に使用される TLS/SSL バージョン。例えば、STARTTLS が使用された後に定義された TLSv1、 SSLv3、および SSLv2; 。 |
| ${total_rate} | Connection-RateWindowSizeで指定された時間間隔における着信コネクションの総数。 |
| ${verify} | 提示された証明書の検証の結果。STARTTLS が使用された (または試行された) 後にのみ定義されます。 可能な値は次のとおりです。
|
| マクロ | 定義 |
|---|---|
| $l (ドル) | 廃止。 代わりにUnixFromLineオプションを使う。 |
| ¥ L | ローカル・ユーザー・リレー (m4 技法)。 |
| $分 | DNS ドメイン・ネーム (V8.1 以上)。 |
| $M | 誰を装っているか (m4 手法)。 |
| $(メール・アドレス) | SMTP メール コマンドに指定されたアドレスの、解決されたトリプルのアドレス部分。 |
| $(メール・ホスト) | SMTP メール コマンドに指定されたアドレスの、解決されたトリプルからのホスト。 |
| $(メール・メール・プログラム) | SMTP メール コマンドに指定されたアドレスの解決済みトリプルからのメーラー。 |
| ¥ n | エラー・メッセージの送信側。 |
| $(ntries) | 配信の試行回数。 |
| $o (O) | 廃止。 代わりに OperatorChars オプションを使用してください。 |
| $opMode | 始動の操作モード (V8.7 以上)。 |
| $P | SendMail プロセス ID。 |
| $q- | 送信側アドレスのデフォルト・フォーム。 |
| $(キューの間隔) | -Q (Q) フラグで定義されたキュー実行間隔。 |
| $ | 使用されるプロトコル。 |
| $R (R) | 非修飾名の中継 (m4 技法)。 |
| $(rcpt_addr) | SMTP の RCPT コマンドに指定されたアドレスの、解決されたトリプルのアドレス部分。 |
| $(rcpt_host) | SMTP の RCPT コマンドに指定されたアドレスの、解決されたトリプルからのホスト。 |
| $(rcpt_mailer) | SMTP の RCPT コマンドに指定されたアドレスの解決済みトリプルからのメーラー。 |
| 「」 | 送信側のホスト名。 |
| $S | スマート・ホスト (m4 技法)。 |
| $(サーバー・アドレス) | 現在の出力 SMTP 接続のサーバーのアドレス。 |
| $(サーバー名) | 現行の発信 SMTP 接続のサーバーの名前。 |
| ¥ t | 現在時刻 (秒)。 |
| $u (U) | 受信者のユーザー名。 |
| ¥ U | $k をオーバーライドする UUCP 名。 |
| ¥ v | SendMail プログラムのバージョン。 |
| $V (V) | UUCP リレー (クラス $= V の場合) (m4 技法)。 |
| $w (W) | このホストの短縮名。 |
| $W (W) | UUCP リレー (クラス $= W の場合) (m4 技法)。 |
| ¥ x | 送信者のフルネーム。 |
| ¥ X | UUCP リレー (クラス $= X の場合) (m4 技法)。 |
| ¥ y | 受信者のホーム・ディレクトリー。 |
| $z (B) | 制御側 TTY の名前。 |
| $Y | 分類していないホストの UUCP リレー。 |
| $z (B) | 受信者のホーム・ディレクトリー。 |
| ¥ Z | この m4 構成のバージョン (m4 技法)。 |
使用できる日付には 3 つのタイプがあります。 $a (A) マクロと $b マクロは RFC 822 形式です。 $a (A) は、メッセージの「日付:」行から抽出された時刻 (存在する場合) であり、 $b は現在の日時 (消印に使用される) です。 着信メッセージに「日付:」行が見つからない場合は、 $a (A) も現在時刻に設定されます。 年 マクロは、 UNIX (ctime) 形式の $b マクロと同等です。 ¥ t マクロは、現在時刻 (秒) です。
マクロ $w (W)、 ¥ j、および $分 は、このホストの ID に設定されます。 Sendmail は、可能な限りホストの完全修飾名を見つけようとします。これを行うには、gethostname (2) を呼び出して現在のホスト名を取得し、それを gethostbyname (3) に渡します。gethostbyname は、そのホスト名の正規バージョンを戻すことになっています。 これが成功したと仮定すると、 ¥ j は完全修飾名に設定され、 $分 は名前のドメイン部分 (最初のドットの後のすべて) に設定されます。 $w (W) マクロは、レベル 5 以上の構成ファイルがある場合は、最初のワード (最初のドットの前のすべて) に設定されます。それ以外の場合は、 ¥ jと同じ値に設定されます。 正規化が成功しない場合は、構成ファイルで ¥ j を完全修飾ドメイン名に設定する必要があります。
¥ f マクロは、最初に決定された送信者の ID です。特定のホストにメールを送信する場合、 ¥ g マクロは、受信者に対して相対的な送信者のアドレスに設定されます。 例えば、ユーザーが以下に送信したとします。king@castle.comマシンからvangogh.painter.comこの場合、 ¥ f マクロは次のようになります。vincentまた、 ¥ g マクロは次のようになります。vincent@vangogh.painter.com.
¥ x マクロは、送信側のフルネームに設定されます。 これはいくつかの方法で決定できます。 フラグとして SendMailに渡すことができます。 これは、NAME 環境変数で定義できます。 3 番目の選択肢は、ヘッダーの「Full-Name:」行の値です (存在する場合)。4 番目の選択肢は、「From:」行のコメント・フィールドです。 これらのすべてが失敗し、メッセージがローカルで発信されている場合は、フルネームが /etc/passwd ファイル内で検索されます。
送信時に、 ¥ h、 $u (U)、および $z (B) マクロは、受信側のホスト、ユーザー、およびホーム・ディレクトリー (ローカルの場合) に設定されます。 最初の 2 つは、それぞれ再書き込みルールの $@ 部分と $: 部分から設定されます。
$p および ¥ t マクロは、固有のストリングを作成するために使用されます (例えば、「Message-Id:」フィールドの場合)。 $i (I) マクロは、このホスト上のキュー ID に設定されます。タイム・スタンプ行に入れると、メッセージのトラッキングに役立ちます。 ¥ v マクロは、 SendMailのバージョン番号に設定されます。これは通常、タイム・スタンプに入れられ、デバッグに役立つことが証明されています。
$c (c) フィールドは、「ホップ・カウント」、つまりこのメッセージが処理された回数に設定されます。 これは、コマンド行の -h フラグによって、またはメッセージ内のタイム・スタンプをカウントすることによって判別できます。
$ および 「」 フィールドは、 SendMail および送信ホスト名との通信に使用されるプロトコルに設定されます。 これらは、-pコマンドラインフラグを使って一緒に設定することも、-Mまたは-oMフラグを使って別々に設定することもできる。
$_ は、検証済みの送信側ホスト名に設定されます。 送信側が RFC 1413 準拠の IDENT サーバーを実行しており、受信側が IDENT プロトコルをオンにしている場合は、そのホスト上のユーザー名が含まれます。
$(クライアント名)、 $(クライアント・アドレス)、および $(クライアント・ポート) マクロは、サーバーとして SendMail を呼び出している接続ホストの名前、アドレス、およびポート番号に設定されます。 これらは、 チェック _ * ルール・セットで ( $& 据え置き評価フォームを使用して) 使用できます。
ドメイン・ネーム・マクロの変更
DDname1.name2.name3.name4このマクロは、 ホスト名 コマンドを使用して自動的に設定できます。 SendMail コマンドは、 ホスト名 コマンドで設定された内容を読み取り、それを使用してホストおよびドメインのマクロとクラスを初期化します。 構成ファイル・マクロを変更する必要があるのは、 SendMail ホスト名およびドメイン名を、 ホスト名 コマンドによって設定されたものと異なるものにする場合のみです。
ドメイン名マクロを変更するには、以下のようにします。
- 次のコマンドを入力します。
vi /etc/mail/sendmail.cf - 以下で始まる行を検索します。DD.
- 以下のものを置き換えます。DDドメイン・ネームを入力します。 例えば、ドメイン・ネームが次のようになっているとします。newyork.abc.com次のように入力します。
DDnewyork.abc.com - ファイルを保存し、エディターを終了します。
ホスト名マクロの変更
ホスト名マクロ DW (D)は、生成するすべてのメッセージの戻りアドレスで使用されるホスト・システムの名前を指定します。 ホスト名マクロの形式は、Dw の後にこのマシンのホスト名を付けたものです。以下に例を示します。
Dwhostname
デフォルトでは、 SendMail コマンドは、 ホスト名 コマンドで設定されたものを読み取り、それを使用してホスト名およびドメイン名のマクロとクラスを初期化します。 構成ファイル・マクロを変更するのは、 SendMail コマンドのホスト名およびドメイン名を、 ホスト名 コマンドによって設定されたものと異なるものにする場合のみにしてください。
ホスト名マクロを変更するには、次のようにします。
- 次のコマンドを入力します。
vi /etc/mail/sendmail.cf - 以下で始まる行を検索します。Dw.
- 以下のものを置き換えます。Dwホスト名に置き換えます。 例えば、ホスト名が次のようになっているとします。brown次のように入力します。
Dwbrown - ファイルを保存し、エディターを終了します。注: DW (D) マクロが定義されている場合は、 CW (W) (ホスト名) クラスも定義する必要があります。
sendmail.cf ファイルおよび submit.cf ファイルの変更
cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.working
cp /etc/mail/submit.cf /etc/mail/submit.cf.working行った変更によってメール・システムが正しく機能しない場合は、 /etc/mail/sendmail.cf ファイルのコピー、または既知の /etc/mail/submit.cf ファイルの使用に戻ることができます。
任意のテキスト・エディターを使用して、セキュリティー・ファイルを変更できます。 ただし、一部のエディターでは、タブ文字自体ではなく、タブを表すスペースの数として保管します。 これにより、タブ文字がルール・セットでフィールド分離文字として定義されている場合に、予期しない結果が生じる可能性があります。 この問題を回避するには vi エディターを使用するか、 J オプションを使用してフィールド分離文字を変更してください。 (参照しやすいように、ここでは、vi エディターを使用して構成ファイルを変更することを想定しています。)
/etc/mail/sendmail.cf ファイルまたは /etc/mail/submit.cf ファイル内の情報を変更した後、ファイルを再読み取りするようにデーモンに指示する必要があります。 これらの手順については、 sendmail デーモンが構成情報を再読み取りするようにする のセクションを参照してください。
sendmail デーモンが構成情報を再読み取りするようにする
構成ファイルに変更を加えた後、ファイルを再読み取りするようにデーモンに指示します。 開始 rc コマンドを使用して SendMail コマンドを開始した場合は、次のコマンドを入力します。
refresh -s sendmail
kill -1 `cat /etc/mail/sendmail.pid`これらのコマンドを使用すると、デーモンは /etc/mail/sendmail.cf ファイル、 /etc/mail/submit.cf ファイル、 /etc/mail/aliases ファイル、および /etc/sendmail.nl ファイルを再読み取りします。
別名データベース
name: name1, name2, ...linda@cloud.ai.acme.org: linda@CS.望ましい効果があります。 別名は、スペースまたはタブで継続行を開始することによって継続することができます。 ブランク行およびポンド記号 (#) で始まる行はコメントです。
2 番目の形式は、新しいデータベース・マネージャー (NDBM) またはバークレー DB ライブラリーによって処理されます。 この形式は、ファイル /etc/mail/aliases.db (NEWDB を使用している場合) または /etc/mail/aliases.dir および /etc/mail/aliases.pag (NDBM を使用している場合) にあります。 これは、 SendMail が別名を解決するために実際に使用する形式です。 この手法は、パフォーマンスを向上させるために使用されます。
AliasFile=switch:aliasesnis がないもの) は、別名スイッチの「files」エントリーのファイル名として使用されます。 例えば、構成ファイルに以下のものが含まれているとします。AliasFile=/etc/mail/aliasesaliases nis files nis最初に NIS データベースで別名が検索され、次に /etc/mail/aliasesで検索されます。
別名データベースの再構築
newaliases/usr/sbin/sendmail -biRebuildAliases オプションが構成に指定されている場合、 sendmail は、別名データベースが古くなると、可能であれば自動的に再作成します。 自動再構築は、大きな別名ファイルがある負荷の大きいマシンでは危険な場合があります。 データベースの再構築に再構築タイムアウト(AliasWaitオプション、通常は5分)を超える時間がかかる可能性がある場合、複数のプロセスが同時に再構築プロセスを開始する可能性がある。
複数の別名データベースが指定されている場合、 -ビ フラグはすべてのデータベース・タイプを再作成します。 例えば、II は NDBM データベースを再作成できますが、NIS データベースは再作成できません。
別名データベースの潜在的な問題
別名データベースでは、いくつかの問題が発生する可能性があります。 これらはすべて、DBM バージョンが部分的にビルドされているにもかかわらず、DBM バージョンにアクセスする SendMail プロセスから発生します。 これは、2 つの状況で発生する可能性があります。1 つのプロセスがデータベースの再作成中に別のプロセスがデータベースにアクセスするか、または再作成の完了前にデータベースの再作成プロセスが (強制終了またはシステム・クラッシュのために) 停止します。
Sendmail には、これらの問題を解決するための 3 つの手法があります。 まず、データベースの再構築中は割り込みを無視します。これにより、部分的に再構築されたデータベースからプロセスを中止するという問題を回避できます。 次に、再作成中にデータベース・ソース・ファイルをロックしますが、 NFS 上では機能しない可能性があります。また、ファイルが書き込み可能でない場合もロックします。 3 番目に、再作成の終了時に、以下の形式の別名を追加します。
@: @
(これは通常は正しくありません)。 SendMail は、データベースにアクセスする前に、このエントリーが存在することを確認します。
所有者のリスト
特定のアドレス Xへの送信でエラーが発生した場合、 SendMail はエラーを受け取るために 所有者-x という形式の別名を探します。 これは通常、リストの実行依頼者がリスト自体の保守を制御しないメーリング・リストの場合に役立ちます。 この場合、リスト・メンテナンス担当者がリストの所有者になります。 次に例を示します。
unix-wizards: linda@paintbox, wnj@monet, nosuchuser,
sam@matisse
owner-unix-wizards: unix-wizards-request
unix-wizards-request: linda@paintbox
原因となるlinda@paintbox誰かが unix ウィザードに送信したときに発生するエラーを取得するには、nosuchuserリストに表示されます。
リスト所有者により、エンベロープ送信側アドレスも変更されます。 所有者別名の内容は、単一のユーザーを指す場合に使用されます。 それ以外の場合は、別名自体の名前が使用されます。 このため、またインターネット規則に準拠するために、「所有者-」アドレスは通常、「-request」アドレスを指します。これにより、メッセージは、「list-request」をリターン・アドレスとして使用するという標準的なインターネット規則に従って送信されます。
ユーザーごとの転送 (.forward ファイル)
別名データベースの代わりに、ユーザーは「.forward」という名前のファイルをホーム・ディレクトリーに入れることができます。 このファイルが存在する場合、 SendMail はそのユーザーのメールを 転送 (.forward) ファイルにリストされているアドレスのリストにリダイレクトします。 例えば、ユーザー「kenly」のホーム・ディレクトリーに、以下の内容を含む 転送 (.forward) ファイルがあるとします。
kenly@ernie
joel@renoir
「kenly」に到着するすべてのメールは、指定されたアカウントにリダイレクトされます。
構成ファイルは、検査する一連のファイル名を定義します。 デフォルトでは、これはユーザーの .forward ファイルですが、 ForwardPath (J) オプションを使用して、より汎用的なファイルとして定義することができます。 このオプションを変更する場合は、ユーザー・ベースに変更を通知する必要があります。
IDENT プロトコル・サポート
UCB SendMail は、RFC 1413 で定義された IDENT プロトコルをサポートします。 これにより、特定の TCP 接続の所有者を監査証跡に含めるために発信元システムに対して「コールバック」を実行することで、E メール・メッセージの作成者の識別が強化されますが、完全にはなりません。判別された偽造者は、IDENT プロトコルのセキュリティーに容易に違反する可能性があります。
以下の説明は、RFC 1413 から抜粋されています。
6. セキュリティーに関する考慮事項
このプロトコルによって返される情報は、それを提供するホストまたはホストを運営する組織と最大で同じ信頼性を備えています。 例えば、オープン・ラボの PC には、ユーザーが希望する ID を返すことができないようにするためのコントロールがいくつかあります。 同様に、ホストが暗号漏えいした場合、返される情報は完全にエラーになり、誤解を招く可能性があります。
識別プロトコルは、許可またはアクセス制御プロトコルとして意図されていません。 TCP 接続に関しては、少なくともいくつかの追加の監査情報を提供します。 最悪の場合、誤った情報、誤った情報、または故意に誤った情報が提供される可能性があります。
このプロトコルによって返される情報を監査以外で使用することは、強く推奨されません。 具体的には、識別プロトコル情報を使用してアクセス制御の決定を行うことにより、1 次方式 (つまり、他の検査なし) として、または他の方式への付加属性として、通常のホスト・セキュリティーが低下する可能性があります。
識別サーバーは、通常はプライベートと見なされる可能性があるユーザー、エンティティー、オブジェクト、またはプロセスに関する情報を明らかにすることがあります。 識別サーバーは、一部の電話会社によって提供される CallerID サービスと、 CallerID サービスに適用される多くの同じプライバシーに関する考慮事項および引数の概要を示すサービスを提供します。 プライバシーに関する考慮事項のために「finger」サーバーを実行しない場合は、このプロトコルを実行しないことをお勧めします。
チューニング
サイトの要件に応じて、いくつかの構成パラメーターを変更することができます。 これらのほとんどは、 sendmail.cf ファイルまたは submit.cf ファイルのオプションを使用して設定されます。 例えば、行「O Time-out.queuereturn=5d」は、オプション「Timeout.queuereturn」を値「5d」(5 日) に設定します。
これらのオプションのほとんどには、ほとんどのサイトに適したデフォルトがあります。 ただし、メールの負荷が非常に高いサイトでは、メールの負荷に合わせて調整する必要がある場合があります。 特に、多数の小さなメッセージがあり、その多くが多数の受信者に配信されているサイトでは、キューの優先順位を扱うパラメーターを調整する必要がある場合があります。
以前のすべてのバージョンの SendMail には、単一文字のオプション名がありました。 古いショート・ネームは引き続き受け入れられますが、ほとんどの新規オプションには、同等のショート・ネームはありません。
タイムアウト
すべての時間間隔は、スケーリングされた構文を使用して設定されます。 例えば、「10m」は 10 分を表し、「2h30m」は 2 時間 30 分を表します。 スケールの全セットは以下のとおりです。
- s
- 秒
- m
- 分
- h
- 時間
- d
- 日数
- w
- 週間
読み取りタイムアウト
すべてのタイムアウトには、オプション名「Time-out.suboption」があります。 認識されるサブオプション、そのデフォルト値、および RFC 1123 セクション 5.3.2 で許可される最小値は、以下のとおりです。
| サブオプション | 説明 |
|---|---|
| アコンネクト | 1 回の配信試行ですべての接続が成功するのを待機する全体的なタイムアウト [0, unspecified]。 0 の場合、全体的な制限は適用されません。 これは、受信者の E メールを受け入れることができるホストの長いリストへの接続を試行する合計時間を制限するために使用できます。 このタイムアウトはFallbackMXhostには適用されない。つまり、タイムアウトが終了すると、FallbackMXhostが次に試行される。 |
| auth | 「SMTP AUTH」ダイアログでの応答のタイムアウト [10m, unspecified]。 |
| コマンド- | サーバー SMTP で、別のコマンドを待機する時間。 [1h, 5m]。 |
| connect | SMTP 接続が開くのを待機する時間 (connect (2) システム・コール) [0, unspecified]。 ゼロの場合は、カーネル・デフォルトを使用します。 このオプションは、カーネルが提供する時間よりも長くタイムアウトを延長することはできませんが、短縮することはできます。 これは、非常に長い接続タイムアウト (場合によっては 90 分) を提供するカーネルを回避するためです。 |
| コントロール | 完全な制御ソケット・トランザクションが完了するまでのタイムアウト [2m, none]。 |
| データ・ブロック- | データ・ブロック (つまり、メッセージの本体) を読み取るための待機。 [1h, 3m]。 これは、プロンプトが出される保証がない SendMail への入力をパイプするプログラムにも適用されるため、長くする必要があります。 |
| データ・ファイナル- | メッセージを終了させるドットからの応答の待機。 [1h,10m]。 これが、受信側がメッセージを配信するために実際に必要な時間より短い場合は、重複が生成されます。 これについては、 RFC1047で説明しています。 |
| データ初期化- | DATA コマンド [5m, 2m] からの応答を待機します。 |
| FILEOPEN | 転送 (.forward) および :include:ファイル [60s, none] のオープンのタイムアウト。 |
| イコンネクト | connectと同じですが、指定されたメッセージ [0, unspecified] のホストへの最初の接続試行にのみ適用される点が異なります。 この期間は非常に短くする必要があります (数秒)。 適切に接続され、即応性のあるホストには、即時にサービスが提供されます。 低速のホストは、最初の配信試行時に他の配信を保持しません。 |
| ID- | IDENT 照会 [30s11, unspecified] への応答を待機中のタイムアウト。 |
| initial | 最初の 220 グリーティング・メッセージ [5m, 5m] を待機します。 |
| HELO | HELO または EHLO コマンド [5m, unspecified] からの応答を待機します。 これにはホスト名のルックアップが必要になる場合があるため、5 分が妥当な最小値であると考えられます。 |
| ホスト状況 | ホストに関する詳細な状況情報 (例えば、ホストのダウン) がキャッシュに入れられる時間。この時間を過ぎると、ホストは失効したと見なされます [30m, unspecified]。 |
| メール- | MAIL コマンド [10m, 5m] からの応答を待機します。 |
| その他 | NOOP (ノーオペレーション) や VERB (冗長モードになる) などの各種 (ただし短い) コマンドからの応答の待機。 [2m, unspecified]。 |
| quit | QUIT コマンド [2m, unspecified] からの応答を待機します。 |
| レポート- | RCPT コマンド [1h, 5m] からの応答を待機します。 拡張に時間がかかるリストを指している可能性があるため、これは長くする必要があります (以下を参照)。 |
| rset | RSET コマンド [5m, unspecified] からの応答を待機します。 |
| resolver.retrans | リゾルバー再送時間間隔を秒単位で設定します。 Timeout.resolver.retrans.first と Timeout.resolver.retrans.normalの両方を設定します。 |
| resolver.retrans.first | 最初のメッセージ配信試行のリゾルバー再送信時間間隔を秒単位で設定します。 |
| resolver.retrans.normal | 最初の配信試行を除くすべてのリゾルバー・ルックアップの再送信時間間隔を秒単位で設定します。 |
| resolver.retry | リゾルバー照会の再送の試行回数を設定します。 Timeout.resolver.retry.first と Timeout.resolver.retry.normalの両方を設定します。 |
| resolver.retry.first | 最初の配信試行のためにリゾルバー照会の再送を試行する回数を設定します。 |
| resolver.retry.normal | 最初の配信試行を除くすべてのリゾルバー・ルックアップについて、リゾルバー照会の再送を試行する回数を設定します。 |
| STARTTLS | SMTP STARTTLS コマンドへの応答のタイムアウト、および TLS ハンドシェークのタイムアウト [1h, unspecified]。 |
古い構成ファイルとの互換性のために、サブオプションが指定されていない場合は、 - でマークされたすべてのタイムアウトが示された値に設定されます。
メッセージ・タイムアウト
数日間キューに入っていると、メッセージがタイムアウトになります。 これは、少なくとも送信者がメッセージを送信できないことを認識していることを確認するためです。 通常、タイムアウトは 5 日に設定されます。 メッセージが数時間より長くキューに入っている場合にも、警告メッセージを送信することが便利な場合があります (通常は接続が良好であることを前提とします。メッセージの送信に通常数時間かかる場合は、異常なイベントではないため、送信しないようにする必要があります)。 これらのタイムアウトは、構成ファイルの Timeout.queuereturn および Timeout.queuewarn オプションを使用して設定されます (以前は、両方とも T オプションを使用して設定されていました)。
これらのオプションはグローバルであり、ドメイン外の別のホストがダウンする時間が分からないため、5 日間のタイムアウトをお勧めします。 これにより、長い週末の初めに問題が発生した場合でも、受信者は問題を修正できます。 RFC 1123 セクション 5.3.1.1 には、このパラメーターは「少なくとも 4 日から 5 日」にする必要があると記載されています。
Timeout.queuewarn 値は、警告メッセージが送信されるまでの時間を示すことにより、 T オプションでピギーバックできます。2 つのタイムアウトはスラッシュで区切られます。 例えば、次のような行があるとします。
OT5d/4h
5 日後に E メールが失敗しますが、4 時間後に警告メッセージが送信されます。 これは、メッセージが数回試行されるほど十分な大きさでなければなりません。
キュー間隔
-Q (Q) フラグの引数は、サブデーモンがキューを実行する頻度を指定します。 これは通常、15 分から 1 時間の間に設定されます。 RFC 1123 のセクション 5.3.1.1 では、これは少なくとも 30 分にすることを推奨しています。
キュー実行中のフォーク
ForkEachJob(Y) オプションを設定することで、sendmailはキューを実行している間、個々のメッセージの前にフォークします。 これにより、 SendMail が大量のメモリーを消費するのを防ぐことができるため、メモリー不足の環境で役立つ可能性があります。 しかし、ForkEachJobオプションが設定されていない場合、sendmailはキュー実行中にダウンしているホストを追跡し、パフォーマンスを劇的に改善することができます。
ForkEachJobオプションが設定されている場合、sendmailはコネクション・キャッシングを使用できません。
キュー優先順位
すべてのメッセージには、最初にインスタンス化されたときに優先順位が割り当てられます。この優先順位は、メッセージ・クラス (Precedence: ヘッダーから決定される) によってオフセットされるメッセージ・サイズ (バイト単位) に「ワーク・クラス・ファクター」を掛けたものと、受信者の数に「ワーク・レシピエント・ファクター」を掛けたものです。 この優先順位は、キューの順序を決めるために使用されます。 優先順位の数値が大きいほど、キューの実行時にメッセージが後で処理されることを意味します。
メッセージ・サイズは、小さいメッセージに対して大きいメッセージがペナルティーを科されるように組み込まれています。 メッセージ・クラスにより、ユーザーは「Precedence:」フィールドをメッセージに組み込むことによって「高優先度」のメッセージを送信できます。このフィールドの値は、構成ファイルの P 行で検索されます。 受信者の数は、メッセージがシステムに提示する負荷の量に影響するため、これも優先順位に含まれます。
受信者とクラス係数は、それぞれ RecipientFactor (y) オプションと ClassFactor (z) オプションを使用して構成ファイルで設定できます。 デフォルトは 30000 (受信者要素の場合) および 1800 (クラス要素の場合) です。 初期優先順位は以下のとおりです。
pri = msgsize - (class times bold ClassFactor) + (nrcpt times bold
RecipientFactor)
(このパラメーターの値が高いほど、実際にはジョブは低い優先順位で処理されることに注意してください。)
ジョブの優先順位は、RetryFactor(Z)オプションで設定される「作業時間係数」を使って、処理されるたびに(つまり、ジョブの配送が試みられるたびに)調整することもできる。 これは優先順位に追加されるため、通常はジョブの優先順位を下げます。これは、何度も失敗したジョブが将来再び失敗する傾向があるという理由で行われます。 RetryFactorオプションのデフォルトは90000である。
負荷制限
Sendmail は、 QueueLA (x) オプションを使用してシステム負荷の平均が高すぎる場合に、メールをキューに入れるように (ただし送達しないように) 要求することができます。 ロード平均が QueueLA オプションの値を超える場合、 QueueFactor (q) オプションを現行ロード平均の差で除算し、 QueueLA オプションに 1 を加えた値がメッセージの優先順位を超えると、配信モードは q (キューのみ) に設定されます。つまり、以下の場合にメッセージがキューに入れられます。
pri > { bold QueueFactor } over { LA - { bold QueueLA } + 1 }
QueueFactor オプションのデフォルトは 600000 であるため、負荷平均の各ポイントの優先順位は 600000 になります (前述のとおり)。
RefuseLA (X) オプションは、 sendmail がネットワーク接続の受け入れを拒否する負荷平均を定義します。 ローカルで生成されたメール (着信 UUCP メールを含む) は、引き続き受け入れられます。
送達モード
sendmail は、 DeliveryMode (d) 構成オプションによって設定されたいくつかの送達モードで作動することができます。 これらのモードは、メールの配信速度を指定します。 正しいモードは以下のとおりです。
| 送達モード | 定義 |
|---|---|
| i | 対話式に (同期的に) 配信 |
| b | バックグラウンドで配信 (非同期) |
| q | キューのみ (配信しない) |
| d | 配信の試行を延期します (配信しません)。 |
トレードオフがあります。 モード I は、送信者に最も迅速なフィードバックを提供しますが、一部のメーラーの速度が低下する可能性があり、ほとんど必要ありません。 モード B は迅速に配信しますが、メッセージの配信に長時間かかるメーラーがあると、多数のプロセスが発生する可能性があります。 モード Q は、マシンの負荷を最小化しますが、送達がキュー間隔まで遅延する可能性があることを意味します。 モード D は、すべての初期マップ・ルックアップが機能しないという点を除き、モード Q と同じです。これは、DNS ルックアップのコストが非常に高くなる可能性がある「ダイヤル・オンデマンド」サイトを対象としています。 いくつかの単純なエラー・メッセージ (例:host unknown during the SMTP protocol) このモードを使用して遅延されます。 モード B がデフォルトです。
モード Q (キューのみ)、 D (遅延)、または B (バックグラウンドで配信) で実行する場合、 SendMail は別名を展開せず、メールの初回受信時に 転送 (.forward) ファイルに従います。 これにより、RCPT コマンドへの応答が高速化されます。 モード I は SMTP サーバーでは使用できません。
ログ・レベル
ロギングのレベルは、 SendMailに対して設定できます。 標準構成テーブルを使用するデフォルトはレベル 9 です。 レベルは次のとおりです。
| ログ・レベル | 定義 |
|---|---|
| 0 | 最小ロギング。 |
| 1 | 重大なシステム障害および潜在的なセキュリティー問題。 |
| ※2 | 通信障害 (ネットワーク問題) およびプロトコル障害。 |
| 3 | その他の重大な障害。 |
| 4 | 軽度の障害。 |
| 5 | メッセージ収集統計。 |
| 6 | エラー・メッセージ、VRFY および EXPN コマンドの作成。 |
| 7 | 配信の失敗 (例えば、ホストまたはユーザーが不明)。 |
| 8 | 成功した配信と別名データベースの再作成。 |
| 90万 | メッセージが据え置かれている (例えば、ホストがダウンしているため)。 |
| 10 | データベース拡張 (別名、順方向、および userdb ルックアップ)。 |
| 11 | NIS エラーおよびジョブの終了処理。 |
| 12 | すべての SMTP 接続をログに記録します。 |
| 13 | 不正なユーザー・シェル、不適切な許可を持つファイル、およびその他の疑わしい状況をログに記録します。 |
| 14 | 拒否された接続を記録します。 |
| 15 | すべての着信および発信 SMTP コマンドをログに記録します。 |
| 20 | ロックされたキュー・ファイルの実行の試行をログに記録します。 これらはエラーではありませんが、キューが詰まっているように見える場合に注意すると役立ちます。 |
| 30 | 脱落ロック ( 群れの代わりに ロック を使用する場合のみ)。 |
ファイル・モード
ファイルに使用されるモードは、必要な機能と必要なセキュリティーのレベルによって異なります。
SendMail が実際に使用するデータベースは、以下のファイルによって表されます。
- /etc/mail/aliases.db
- Berkeley DB データベース
これらのファイルのモードは、 /etc/mail/aliasesのモードと一致している必要があります。 別名 が書き込み可能で、ファイルが書き込み可能でない場合、ユーザーは、必要な変更を実際のデータベースに反映することができません。 ただし、 別名 が読み取り専用で、DBM ファイルが書き込み可能な場合は、やや洗練されたユーザーがメールの盗用を手配することができます。
DBMファイルが書き込み可能でない場合、または(AutoRebuildAliasesオプションで)自動再構築を有効にしていない場合は、テキストバージョンを変更するたびにエイリアスデータベースを再構築するよう注意しなければならない:
newaliases
このステップが無視されたり、忘れられたりすると、意図した変更はすべて失われます。
接続キャッシュ
キューの処理時に、 SendMail は、始動およびシャットダウンのコストを回避するために、最後のいくつかのオープン接続を開いたままにしようとします。 これは IPC 接続にのみ適用されます。
接続を開こうとすると、最初にキャッシュが検索されます。 オープン接続が検出されると、 RSET (R) コマンドを送信することによって、その接続がまだアクティブであるかどうかを確認するためにプローブされます。 これが失敗してもエラーにはなりません。代わりに、接続がクローズされ、再オープンされます。
2 つのパラメーターが接続キャッシュを制御します。 ConnectionCacheSize(k) オプションは、許可される同時オープン接続数を定義する。 ゼロに設定すると、接続はできるだけ早くクローズされます。 デフォルトは 1 部です。 これは、システム・サイズに応じて適切に設定する必要があります。これにより、 SendMail がキュー実行中に使用するシステム・リソースの量が制限されます。 これを 4 より大きい値に設定しないでください。
ConnectionCacheTimeout(K)オプションは、キャッシュされた接続がアイドル状態であることを許容する最大時間を指定する。 アイドル時間がこの値を超えると、接続はクローズされます。 他のホストからのリソースが多くなりすぎないようにするために、この数値は小さくする必要があります (10 分未満)。 デフォルトは 5 分です。
ネーム・サーバー・アクセス
マシン交換 (MX) サポートが必要な場合は、ドメイン・ネーム・サービス (DNS) を使用する必要があります。
ResolverOptions(I)オプションを使うと、ネームサーバーのオプションを微調整できる。 コマンド・ラインは、文書化された inresolver (3) のように一連のフラグを取ります (先頭の「RES_」は削除されます)。 それぞれの前には、オプションの「+」または「-」を付けることができます。 例えば、次の行があるとします。
O ResolverOptions=+AAONLY -DNSRCH
AAONLY (権限応答のみを受け入れる) をオンにし、DNSRCH (ドメイン・パスの検索) オプションをオフにします。 ほとんどのリゾルバー・ライブラリーでは、デフォルトの DNSRCH、DEFNAMES、および RECURSE フラグがオンになり、その他はすべてオフになります。 また、"HasWildcardMX"を含めることで、ドメインにマッチするワイルドカードMXレコードが存在することを指定することもできる。これは、名前を正規化する際のMXマッチングをオフにするもので、不適切な正規化につながる可能性がある。
ユーザーごとの転送ファイルの移動
一部のサイトでは、ローカル・アクセスが高速になるように、ワークステーション上のローカル・ディスクから各ユーザーのホーム・ディレクトリーをマウントします。 ただし、結果として、 転送 (.forward) ファイルの検索速度が低下します。 場合によっては、ファイル・サーバーがダウンしているために、メールが不適切にマシンに配信されることもあります。 自動マウント機能を実行すると、特にパフォーマンスが低下する可能性があります。
ForwardPath (J) オプションを使用すると、転送ファイルのパスを設定できます。 例えば、構成ファイルの行は次のようになります。
O ForwardPath=/var/forward/$u:$z/.forward.$w
最初に、 /var/forwardでユーザーのログインと同じ名前のファイルを探します。 それが見つからない (またはアクセスできない) 場合は、ユーザーのホーム・ディレクトリーにあるファイル「.forward.machinename」が検索されます。
/var/forwardなどのディレクトリーを作成する場合は、モード 1777 にする必要があります (つまり、スティッキー・ビットを設定する必要があります)。 ユーザーはファイル・モード 644 を作成する必要があります。
空きスペース
statfs(2) 系列のシステム・コール(statvfsおよびustat を含む)の 1 つを持つシステムでは、MinFreeBlocks(b) オプションを使用して、キュー・ファイル・システムの最小空きブロック数を指定できます。 キューがマウントされているファイル・システム上の空きブロック数が、示されている数より少ない場合、SMTP サーバーは 452 エラー・コードでメールを拒否します。 これにより、SMTP クライアントが後で再試行するように招待されます。
最大メッセージ・サイズ
大きなメッセージでシステムが溢れるのを避けるために、MaxMessageSizeオプションは、一つのメッセージのサイズに絶対的な制限を設定することができます。 これは、ESMTP ダイアログで通知され、メッセージ収集時に検査されます。
プライバシー・フラグ
PrivacyOptions (p) オプションを使用すると、特定の「プライバシー」フラグを設定できます。 実際には、多くの場合、クライアント SMTP サーバーが特定のコマンドを使用する前に HELO コマンドを使用するか、セキュリティー違反の可能性を示すために追加のヘッダーを追加することを主張するだけで、追加のプライバシーは提供されません。
このオプションは、一連のフラグ名を取ります。最終的なプライバシーは、それらのフラグの包含または包含です。 次に例を示します。
O PrivacyOptions=needmailhelo, noexpn
MAIL コマンドが受け入れられる前に HELO または EHLO コマンドを使用することを要求し、EXPN コマンドを使用不可にします。
フラグの詳細は、RFC 1123 S 5.1.6に記載されています。
自分にも送信
通常、 SendMail は、リスト拡張から (エンベロープ) 送信側を削除します。 例えば、「linda」がメンバーの 1 つとして「linda」を含むリストに送信した場合、メッセージのコピーは取得されません。 -m (me も) コマンド・ライン・フラグが設定されている場合、または MeToo (m) オプションが構成ファイルに設定されている場合、この動作は抑止されます。
C および F-クラスの定義
Ccphrase1 phrase2...
FcfileCHmonet ucbmonetCHmonet
CHucbmonetは、同等です。 "F" 形式は、指定されたファイルからクラス c のエレメントを読み取ります。
クラスのエレメントは、$= または $~ を使用してルール内でアクセスできます。 $~ (クラス内にない一致項目) は、単一のワードにのみ一致します。このコンテキストでは、クラス内の複数ワードの項目は無視されます。
クラス $=w は、このホストが認識するすべての名前のセットになるように設定されます。 これを使用して、ローカル・ホスト名を突き合わせることができます。
クラス $=k は、$k と同じもの、つまり UUCP ノード名に設定されます。
クラス $=m は、このホストが認識されるドメインのセットに設定されます。最初は $m のみです。
クラス $=t は、T 構成行によってトラステッド・ユーザーのセットに設定されます。 信頼できるユーザーをファイルから読み取る場合は、 フィート/ファイル/名前を使用します。
クラス $=n は、8 ビットから 7 ビットにエンコードできない MIME 本体タイプのセットに設定できます。 デフォルトは「multipart/signed」です。 メッセージ・タイプ「message/ *」および「multipart/ *」が直接エンコードされることはありません。 複数パーツ・メッセージは常に再帰的に処理されます。 メッセージ/* メッセージの処理は、クラス $= s によって制御されます。 クラス $=e には、8-> 7 ビット・エンコードの Content-Transfer-Encodings が含まれます。 これは、「7bit」、「8bit」、および「binary」を含むように事前定義されています。 クラス $=s には、再帰的に処理できるメッセージのサブタイプのセットが含まれています。 デフォルトでは、「rfc822」のみが含まれます。 その他の「message/ *」タイプは、8-> 7 ビット・エンコードにすることはできません。 8 ビット・データを含むメッセージが 7 ビット・ホストに送信され、そのメッセージを 7 ビットにエンコードできない場合、そのメッセージは 7 ビットにストリップされます。
3 つのクラス $= U、$= Y、および $=Z は、uucp メーラーの使用を必要とするホストを記述するために定義されます。 具体的には、$=U には、uucp-old メーラーを必要とするすべてのホストが含まれている必要があります。 $=Y は、uucp-new メーラーを必要とするすべてのホストを含む必要があります。 最後に、$=Z には、uucp-uudom メーラーを必要とするすべてのホストが含まれている必要があります。 各 uucp ホストは、これらのクラスのいずれかに属している必要があります。
FL/etc/passwd %[^:]これは、最初のコロンまでのすべての行を読み取ります。
ホスト名の変更
CwCw alias aliasn... デフォルトでは、 SendMail コマンドは、 ホスト名 コマンドで設定されたものを読み取り、それを使用してホスト名およびドメイン名のマクロとクラスを初期化します。 構成ファイル・マクロを変更するのは、 SendMail ホスト名およびドメイン名を、 ホスト名 コマンドによって設定されたものと異なるものにする場合のみにしてください。
ホスト名を変更する場合:
- 次のコマンドを入力します。
vi /etc/mail/sendmail.cf
または
vi /etc/mail/submit.cf
- 以下で始まる行を検索します。Dj and Dw.Dj and Dw「hostname」で設定されたホスト名とドメイン名をオーバーライドします。
- 置換Dj and Dw新しいホスト名情報を使用します。 例えば、ホスト名が次のようになっているとします。brown.newyork.abc.com別名が 1 つあるとします。brown2次のように入力します。
- ファイルを保存し、エディターを終了します。
ファイルを使用したクラスの作成
FClass FileName [Format]Classリストされているいずれかの語と一致するクラスの名前です。FileName.Filenameファイルの絶対パス名です (便宜上、ファイルを /etc/mail ディレクトリーに入れることができます)。FormatFileName内のクラスのエレメントのフォーマットを示す、オプションの scanf サブルーチン・フォーマット指定子です。 このFormat指定子に含めることができる変換仕様は 1 つだけです。
M-メーラーの定義
この行には、メーラーへのプログラムおよびインターフェースが定義されています。 フォーマットは次のとおりです。
Mname, {field=value}*
ここで、name はメーラーの名前 (内部でのみ使用される) であり、「field = name」ペアはメーラーの属性を定義します。 フィールドは以下のとおりです。
| フィールド | 説明 |
|---|---|
| パス | メール配信者のパス名 |
| flags | このメーラーの特殊フラグ |
| sender | 送信側アドレスのセットの再書き込み |
| 受信者 | 受信者アドレスのセットの再書き込み |
| argv | このメール・プログラムに渡す引数ベクトル |
| eol | このメールの行の終わりの文字列 |
| MAXSIZE | このメール配信者への最大メッセージ長 |
| 最大メッセージ数 | 接続ごとの最大メッセージ配信数 |
| リネリミit | メッセージ本文の行の最大長 |
| directory | メール配信者の作業ディレクトリー |
| ユーザーID | 実行するデフォルトのユーザーおよびグループ ID |
| nice | メーラーの nice (2) の増分 |
| 文字セット | 8 ビット文字用のデフォルト文字セット |
| Type | MTS タイプ情報 (エラー・メッセージに使用) |
| WAIT | メール配信者を待機する最大時間 |
| / | メーラーのルート・ディレクトリー |
| キュー・グループ | メーラーのデフォルト・キュー・グループ。 |
フィールド名の先頭文字のみが検査されます。
以下のリストに示すフラグは、メーラーの説明で設定することができます。 他のフラグを自由に使用して、特定のメール・プログラム宛てのメッセージにヘッダーを条件付きで割り当てることができます。 - でマークされたフラグは、 SendMail バイナリーによって解釈されません。これらのフラグは、通常、H 行のフラグ部分と相関させるために使用されます。 = のマークが付いたフラグは、通常の受信側メール・プログラムではなく、送信側アドレスのメール・プログラムに適用されます。
| フラグ | 説明 |
|---|---|
| a | 拡張 SMTP (ESMTP) プロトコル (RFC 1651、1652、および 1653 で定義) を実行します。 このフラグは、SMTP グリーティング・メッセージに「ESMTP」という語が含まれている場合にデフォルトでオンになります。 |
| A | 別名データベースでアドレスのユーザー部分を検索します。 通常、これはローカル・メールの場合にのみ設定されます。 |
| b | メッセージの終わりにブランク行を強制します。 これは、ブランク行を必要とするが、それ自体は指定しない一部のバージョンの /bin/mail を回避するためのものです。 通常はネットワーク・メールでは使用されません。 |
| C | アドレスにコメントを含めないでください。 これは、コメントによって混乱するリモート・メーラーを回避する必要がある場合にのみ使用してください。 これにより、「Phrase < address>」または「address (Comment)」の形式のアドレスが「address」まで除去されます。 |
| C= | このフラグが設定されたメール・プログラムからメールを受信した場合、ヘッダー内のアットマーク (「@」) のないアドレス ルール・セット 3 によって再書き込みされると、送信側エンベロープ・アドレスからの「@domain」節がオンになります。 これにより、以下の形式のヘッダーを持つメールが許可されます。
以下のように自動的に再書き込みされます (ただし、 ない は信頼性があります)。
|
| d | 経路アドレスの構文アドレスは、不等号括弧で囲まないでください。 これは、不等号括弧を入出力リダイレクトとして解釈する可能性があるアドレスをシェルに渡すメール・プログラムで役立ちます。 |
| D (D)- | このメール・プログラムは、「日付:」ヘッダー行を必要とします。 |
| e | このメーラーは接続にコストがかかるため、正常に接続しないようにしてください。 キューの実行中に必要な接続が行われます。 |
| E | メッセージ内の「From」で始まる行は、「>」記号でエスケープします。 |
| F | メーラーは 「-f」 from フラグを必要としますが、これがネットワーク転送操作である場合のみです (つまり、実行中のユーザーが特別な許可を持っていない場合、メーラーはエラーを出します)。 |
| F- | このメール・プログラムは、「From:」ヘッダー行を必要とします。 |
| g | 通常、 SendMail は、RFC 1123 の要求に従って、ヌル戻りアドレスを使用して内部で生成されたエラー・メッセージを送信します。 ただし、一部のメール・プログラムは、ヌルのリターン・アドレスを受け入れません。 必要に応じて、 G フラグを設定して、 SendMail が標準に従わないようにすることができます。エラー・メッセージは、MAILER-DAEMON (実際には $n マクロの値) から送信されます。 |
| h | このメーラーのホスト名には大文字を保持する必要があります。 |
| i | エンベロープ送信側アドレスでユーザー・データベースの再書き込みを行いますか。 |
| I | このメーラーは別の sendmail、 に対して SMTP を使用するため、特殊なプロトコル機能を使用できます。 このオプションは必須ではありません (つまり、このオプションを省略した場合でも伝送は正常に動作しますが、可能な限り効率的ではない可能性があります)。 |
| j | 送信者だけでなく受信者に対してもユーザーデータベースの再書き込みを実行します。 |
| k | 通常、 SendMail は、SMTP 経由でホストに接続するときに、 SendMail の構成が誤っている場合や、長距離ネットワーク・インターフェースがループバック・モードに設定されている場合に発生する可能性があるのと同じホスト名が誤って使用されていないかどうかを検査します。 このフラグは、ループバック・チェックを無効にします。 これは、非常に特殊な状況でのみ使用する必要があります。 |
| K | 現在実装されていません。 チャンク化用に予約済み。 |
| l | このメーラーはローカルです (つまり、最終配信が実行されます)。 |
| L | RFC821で指定されているように、行の長さを制限します。 この推奨されないオプションは、L= mail 宣言に置き換える必要があります。 履歴上の理由から、 L フラグは 7 フラグも設定します。 |
| m | このメーラーは、1 回のトランザクションで同じホスト上の複数のユーザーに送信できます。 $u (U) マクロがメーラー定義の argv 部分にある場合、そのフィールドは、資格を満たすすべてのユーザーに対して必要に応じて繰り返されます。 |
| M- | このメール・プログラムは、「メッセージ ID:」ヘッダー行を必要とします。 |
| n | メッセージの前に UNIXスタイルの「From」行を挿入しないでください。 |
| O | 常に受信者メールボックスの所有者として実行します。 通常、 SendMail は、ローカルで生成されたメールの送信側として実行されるか、ネットワーク・メールの配信時に「デーモン」(実際には U オプションで指定されたユーザー) として実行されます。 通常の動作は、ほとんどのローカル・メール配信者が必要とします。これにより、メール配信者がデーモンとして実行されていない限り、エンベロープ送信者アドレスを設定することはできません。 S フラグが設定されている場合、このフラグは無視されます。 |
| p | 戻りアドレスだけではなく、SMTP "MAIL FROM:" コマンドで route-addr スタイルのリバース・パスを使用します。これは RFC821 セクション 3.1では必須ですが、多くのホストはリバース・パスを適切に処理しません。 リバース・パスは、公式には RFC 1123 によって推奨されません。 |
| P-(P) | このメール・プログラムは、「Return-Path:」回線を必要とします。 |
| q | このメーラーに解決されるアドレスが検査される (SMTP VRFY コマンド) と、252 応答ではなく 250 応答が生成されます。 これは、アドレスがローカルであることを意味します。 |
| フラグ | 説明 |
|---|---|
| r | Fと同じですが、 - フラグを送信します。 |
| R | 「セキュア」ポートから SMTP 接続を開きます。 セキュア・ポートは、 UNIX マシン以外ではセキュアではないため、これによって何かが追加されることは不明確です。 |
| s | メーラーを呼び出す前に、アドレスから引用文字 (" および ¥) を削除してください。 |
| S | メーラーを呼び出す前にユーザー ID をリセットしないでください。 これは、 SendMail が root として実行されているセキュア環境で使用されます。 これは、偽造されたアドレスを回避するために使用できます。 U= (U) フィールドも指定されている場合、このフラグにより、ユーザー ID は常にそのユーザーおよびグループに設定されます (root のままにするのではなく)。 |
| u | このメーラーのユーザー名には大文字を保持する必要があります。 |
| U | このメーラーは、UUCP スタイルの「From」行の末尾に「remote from < host>」があることを必要とします。 |
| w | ユーザーは、このマシン上に有効なアカウントを持っている必要があります (getpwnam が成功する必要があります)。 そうでない場合、メールはバウンスされます。 これは、「. forward」機能を取得するために必要です。 |
| X- | このメール・プログラムは、「Full-Name:」ヘッダー行を必要とします。 |
| x | このメーラーは、基本的に RFC821; で指定されている隠しドット・アルゴリズムを使用する必要があります。基本的に、ドットで始まる行の前には余分なドットが付加されます (もう一方の端にはストリップされます)。 これにより、メッセージ内のドットが含まれている行が、メッセージを途中で終了することがなくなります。 |
| z | SendMail とローカル・メーラーの間でローカル・メール転送プロトコル (LMTP) を実行します。 これは、ローカル・メールボックスに配信するために特別に設計された、RFC 2033 で定義された SMTP 上のバリアントです。 |
| 0 | SMTP を介してホストの Mx レコードを検索しません。 |
| 3 | 変換後の文字のリストを拡張=XX変換時の表記Quoted-PrintableASCII と EBCDIC の間で正常にマップされないものを組み込みます。 IBM® メインフレームがオンサイトにある場合に役立ちます。 |
| 5 | このアドレスの別名が見つからない場合は、可能な代替解決のためにルール・セット 5 を介してアドレスを渡します。 これは、メールを代替配信スポットに転送することを目的としています。 |
| 6 | ヘッダーを 7 ビットにストリップします。 |
| 7 | すべての出力を 7 ビットにストリップします。 これは、 L フラグが設定されている場合のデフォルトです。 このオプションをクリアするだけでは、 SendMailを介して渡される 8 ビット・データ全体を取得するには不十分であることに注意してください。 7 オプションが設定されている場合、8 番目のビットが入力でストリップされたため、これは基本的に常に設定されます。 このオプションは、8-> 7 ビット MIME 変換が実行されなかったメッセージにのみ影響することに注意してください。 |
| 8 | 設定されている場合、8 ビット・データをこのメーラーに送信することは受け入れられます。8 ビットから 7 ビットの MIME 変換を行う通常の試行はバイパスされます。 |
| 90万 | 設定されている場合は、7 ビットから 8 ビットまでの MIME 変換を制限します。 これらの変換は、テキスト/プレーン・データに限定されます。 |
| : | アドレスを調べて、":include:" で始まるかどうかを確認してください。 含まれている場合は、「* include*」メーラーに変換してください。 |
| | | アドレスが ` | ' で始まるかどうかを確認してください。 存在する場合は、「prog」メーラーに変換します。 |
| / | アドレスを調べて、「/」で始まるかどうかを確認してください。 存在する場合は、それらを「* file*」メーラーに変換します。 |
| @ | ユーザーデータベースでアドレスを検索します。 |
| % | キューに入れられたメッセージが-qI/-qR/-qSqueue run 修飾子や ETRN リクエストのいずれかを使って選択されない限り、 メッセージの最初の受信者やキューの実行時に配送を試みない。 |
特殊名が「error」のメーラーを使用して、ユーザー・エラーを生成することができます。 (オプションの) ホスト・フィールドは戻される出口状況であり、ユーザー・フィールドは印刷されるメッセージです。 終了状況は、数値、または対応する EX_ 終了コードを返すための値 USAGE、NOUSER、NOHOST、UNAVAILABLE、SOFTWARE、TEMPFAIL、PROTOCOL、または CONFIG のいずれかになります。 例えば、次のように入力します。
$#error $@ NOHOST $: Host unknown in this domain
ルールの RHS では、LHS が一致すると、指定されたエラーが生成され、「ホスト不明」終了状況が返されます。 これは、O、S、および check_ ... ルール・セットで常に使用可能であり、 分 コマンドで定義することはできません。
「local」という名前のメーラーは、すべての構成ファイルで定義する必要があります。 これは、ローカル・メールを配信するために使用され、いくつかの方法で特別に処理されます。 さらに、「prog」、「* file*」、および「* include*」という名前の他の 3 つのメーラーを定義して、プログラム、ファイル、および :include: リストへのメッセージの配信をそれぞれ調整することができます。 デフォルトは以下のとおりです。
Mprog, P=/bin/sh, F=lsoDq9, T=DNS/RFC822/X-Unix, A=sh -c $u
M*file*, P=[FILE], F=lsDFMPEuq9, T=DNS/RFC822/X-Unix, A=FILE $u
M*include*, P=/dev/null, F=su, A=INCLUDE $u
送信側と受信側の再書き込みセットは、単純なルール・セット ID にすることも、スラッシュで区切られた 2 つの ID にすることもできます。その場合、最初の再書き込みセットはエンベロープ・アドレスに適用され、2 番目の再書き込みセットはヘッダーに適用されます。 任意の値をゼロに設定すると、対応するメーラー固有の再書き込みが無効になります。
このDirectoryfield は、試行するディレクトリーのパスです。 例えば、以下の定義では、D=$z:/受信者のホーム・ディレクトリーを実行しようとしますが、それが使用可能でない場合は、ファイル・システムのルートで実行しようとします。 一部のシェル ( CSHなど) はホーム・ディレクトリーを読み取ることができない場合に実行されないため、これは プログラム メーラーでのみ使用してください。 通常、無許可ユーザーはキュー・ディレクトリーを読み取ることができないため、 CSH スクリプトは、受信者として使用されると失敗する可能性があります。
このUseridフィールドには、実行するデフォルトのユーザー ID とグループ ID を指定します。 これは、 DefaultUser オプション q.vをオーバーライドします。 S メーラー・フラグも指定されている場合、ユーザーおよびグループ ID はすべての状況で実行されます。 ユーザー: グループ の形式を使用して、ユーザー ID とグループ ID の両方を設定します。 これらの変数は、それぞれ パスワード ファイルと グループ ファイルで検索される整数またはシンボル名にすることができます。
このCharsetフィールドは、メッセージを MIME に変換するときに使用されます。 これは、Content-Type: ヘッダーで使用される文字セットです。 設定されていない場合は、 DefaultCharset オプションが使用されます。 DefaultCharset が設定されていない場合は、次の値unknown-8bit使用されます。 文字セット フィールドは、 送信者 mailer; 受信者のものではない mailer に適用されます。 例えば、エンベロープ送信側アドレスがローカル・ネットワーク上にあり、受信側が外部ネットワーク上にある場合、文字セットは、Charset=外部ネットワーク・メーラーではなく、ローカル・ネットワーク・メーラーのフィールド。
このTypeフィールドは、MIME エラー・メッセージ (RFC 1984 で定義) で使用される情報のタイプを設定します。 これには、スラッシュで区切られた 3 つの値が含まれます。MTA タイプ (ホストの名前の説明)、アドレス・タイプ (E メール・アドレスの説明)、および診断タイプ (エラー診断コードの説明) です。 それぞれが登録値であるか、または以下で始まる必要があります。X-デフォルトは次のとおりです。dns/rfc822/smtp.
メール・プログラム仕様の例
- ローカル・デリバリー・メーラーを指定するには、次のように入力します。
メーラーが呼び出されます。local. パス名は次のとおりです。/usr/bin/bellmailメーラーは、以下のフラグを使用します。Mlocal, P=/usr/bin/bellmail, F=lsDFMmn, S=10, R=20, A=mail $uルール・セット 10 は、メッセージ内の送信者アドレスに適用する必要があります。 ルール・セット 20 を受信者アドレスに適用する必要があります。 メーラーに送信される追加情報Afield は、単語 メール と、受信者の名前を含む単語です。項目 説明 l ローカル配信を指定します。 s アドレスから引用符を除去します。 DFM 要求Date:, From:, およびMessage-ID:フィールド m 複数のユーザーに配信します。 n オペレーティング・システム は必要ありません。 Fromメッセージの先頭にある 行。
H-ヘッダーの定義
SendMail がメッセージに挿入するヘッダー行の形式は、 時間 行によって定義されます。 この行の構文は、以下のいずれかです。
Hhname:htemplate
H[?mflags?]hname: htemplate
H[?${macro}?hname:htemplate
この仕様の継続行は、出力メッセージに直接反映されます。 htemplate は、メッセージに挿入する前にマクロで展開されます。 mflags (疑問符で囲まれている) が指定されている場合、このヘッダーが自動的に出力されるようにするには、指定されたフラグの少なくとも 1 つをメーラー定義に記述する必要があります。 これらのヘッダーの 1 つが入力にある場合は、これらのフラグに関係なく出力に反映されます。
一部のヘッダーには、後述する特殊なセマンティクスがあります。
2 次構文では、読み取り時にヘッダーの妥当性検査を行うことができます。 検証を有効にするには、以下を使用します。
HHeader: $>Ruleset
HHeader: $>+Ruleset
示されている ルール・セット が、示されている ヘッダーに対して呼び出されます。 他の チェック _ * ルール・セットと同様に、以下を返すことができます。$#errorメッセージを拒否するか、または$#discardメッセージを破棄します。 ヘッダーは構造化フィールドとして扱われるため、2 番目の形式 $>+ が使用されていない限り、コメント (括弧内) は処理の前に削除されます。
HMessage-Id: $>CheckMessageId
SCheckMessageId
R<$+@$+> $@OK
R$* $#error $: Illegal Message-Id headerは、以下のいずれかの形式の Message-Id: ヘッダーを持つメッセージ・ヘッダーを拒否します。
Message-Id: <>
Message-Id: some text
Message-Id: <legal test@domain> extra textsendmail.cf ファイルおよび submit.cf ファイル内のメッセージ見出し
構成ファイル内の大文字の 時間で始まる行は、メッセージで使用されるヘッダーの形式を定義します。 以下の形式Hコマンド:
H[?MailerFlags?]FieldName: Content変数パラメーターは、以下のように定義されます。
| パラメーター | 定義 |
|---|---|
| MailerFlags | 以下を判別します。H行が使用されます。 このパラメーターはオプションです。 このパラメーターを指定する場合は、? で囲んでください。 (疑問符)。 メーラーが (メーラー定義のフラグ・フィールドに示されているように) この制御行によって定義されたフィールドを必要とする場合、H見出しの形式設定時に制御行が組み込まれます。 それ以外の場合は、H制御行は無視されます。 |
| FieldName | 見出し情報のフィールドの名前として表示されるテキストが入っています。 標準的なフィールド名は次のとおりです。From:,To:およびSubject:. |
| Content | フィールド名の後に表示される情報を定義します。 通常、マクロはこの情報を指定します。 |
以下の行の例は、標準的な構成ファイルからのものです。
| 例 | 意味 |
|---|---|
| H?P?Return-Path: <$g> | 以下のフィールドを定義します。Return-Path¥ g マクロの内容 (受信者に対する送信者アドレス) を表示します。 この?P?部分は、メーラーが P フラグを使用する場合にのみこの行が使用されることを示します (メーラーには、Return-Path行)。 ヘッダーは、メーラーに示されたフラグがある場合にのみ生成されます。 ヘッダーが入力メッセージに表示される場合、ヘッダーは変更されずにパススルーされます。 |
HReceived: $?sfrom $s $.by $j ($v/$Z) id $i;
$b |
以下のフィールドを定義します。 Receivedこのフィールドには、以下が含まれます。
|
O-オプションの設定
構成ファイルから設定できるグローバル・オプションがいくつかあります。 この行の構文は次のとおりです。
O option=value
これにより、オプション 等しい が 値に設定されます。 サポートされるオプションは、以下の表にリストされています。
| オプション | 説明 |
|---|---|
| エイリアスファイル=spec, spec, ... | 可能な別名ファイルを指定してください。 各 Spec の形式は クラス: ファイル でなければなりません。ここで、 クラス: はオプションであり、含まれていない場合はデフォルトの 暗黙的 になります。 SendMail のコンパイル方法に応じて、有効なクラスは以下のとおりです。
仕様のリストが提供されている場合、 SendMail はそれらを順番に検索します。 |
| AliasWait=タイムアウト | 開始する前に、 @:@ エントリーが別名データベースに存在するまで最大 タイムアウト (単位はデフォルトで分) 待機します。 タイムアウト時間内に表示されず、AutoRebuildAliasesオプションも設定されている場合は、データベースを再構築する。 それ以外の場合は、警告を出します。 |
| AllowBogusHELO | ホスト名を含まない HELO SMTP コマンドを許可します。 これを設定すると、RFC 1123 セクション 5.2.5に違反しますが、いくつかの SMTP クライアントと相互運用する必要があります。 値がある場合でも、正当性については検査されます。 |
| ブランクサブ=c | ブランク置換文字を Cに設定します。 アドレス内の引用符で囲まれていないスペースは、この文字に置き換えられます。 定義されていない場合は、デフォルトでスペースになり、置換は行われません。 |
| CACERTPath | CA の証明書があるディレクトリーへのパス。 |
| キャッシュ・ファイル | 1 つの CA 証明書を含むファイル。 |
| CheckAliases | 別名データベースの再作成時に別名の RHS を検証します。 |
| チェックポイント間隔=N | 送信されるすべての N アドレスに対してキュー・チェックポイント間隔を定義します。 指定しない場合、デフォルトは 10です。 大きなリストへの配信中にシステムがクラッシュすると、最後の受信者以外への再送信が防止されます。 |
| クラスファクター=ファクト | 示されている 事実またはメッセージ・クラスで乗算され、優先順位から減算されます。 メッセージ・クラスは、ユーザー・ヘッダーの 優先順位: フィールドと構成ファイルの P 行によって決定されます。 より高い 優先順位: を持つメッセージが優先されます。 指定しない場合、デフォルトは 1800です。 |
| ClientCertFile | クライアントの証明書を含むファイル。 この証明書は、 SendMail がクライアントとして機能する場合に使用されます。 |
| クライアントポートオプション=オプション | クライアント SMTP オプションを設定します。 オプションは、コンマで区切られた キー = 値 のペアです。 既知のキーは以下のとおりです。
|
| ClientKeyFile | クライアント証明書に属する秘密鍵を含むファイル。 |
| ColonOkInAddr | 設定されている場合、E メール・アドレスでコロンを使用できます。以下に例を示します。
設定されていない場合、コロンは RFC 822 グループ構成体の始まりを示します。以下に例を示します。
次のように、2 倍のコロンは常に許容されます。
適切な routeaddr ネストが認識されます。以下に例を示します。
後方互換性のため、構成バージョン・レベルが 6 未満の場合、このオプションはデフォルトで |
| 接続キャッシュサイズ=N | N は、一度にキャッシュされるオープン接続の最大数です。 指定しない場合、デフォルトは 1です。 これは、 sendmail のこの呼び出しが別のホストに接続するか、または終了するまで、現行接続のクローズを遅らせます。 これを 0 に設定すると、接続は即時にクローズされます。 これはファイル記述子を消費するため、接続キャッシュは小さくしておく必要があります。実際の最大値は 4 です。 |
| ConnectionCacheTimeout =タイムアウト | タイムアウト は、キャッシュされた接続がアイドル状態であることが許可される最大時間です。 この時間を超えると、接続は即時にクローズされます。 この値は小さくする必要があります。実際の最大値は 10 分です。デフォルトは 5 分です。 sendmail は、キャッシュされた接続を使用する前に、常に RSET コマンドを送信して接続を検査します。 これが失敗すると、接続が再オープンされます。 これにより、もう一方の終了がタイムアウトになった場合に、終了が失敗しないようにすることができます。 |
| ConnectOnlyTo=アドレス | テスト目的で接続アドレスをオーバーライドするために使用できます。 |
| コネクションレートスロットル=N | 設定されている場合、1 秒間に N 個を超える着信デーモン接続を許可しません。 これは、ピークをフラット化し、負荷平均チェックをカットすることを目的としています。 指定しない場合、デフォルトは 0 (制限なし) です。 |
| ControlSocketName =名前 | デーモン管理用の制御ソケットの名前を定義します。 実行中の SendMail デーモンは、この名前付きソケットを介して制御できます。 使用可能なコマンドは、 ヘルプ、 再始動、 シャットダウン、および 状況です。 状況 コマンドは、現在のデーモンの子の数、デーモンの子の最大数、キュー・ディレクトリーの空きディスク・スペース・ブロック、およびマシンの負荷平均を整数で返します。 設定されていない場合、制御ソケットは使用できません。 |
| デーモンポートオプション=オプション | サーバー SMTP オプションを設定します。 DaemonPortOptionsの各インスタンスは、追加の受信ソケットにつながる。 オプションは キー = 値 のペアです。 既知のキーは以下のとおりです。
|
| デーモンポートオプション'=オプションcont. |
|
| DefaultAuthInfo | 発信接続のデフォルト認証情報を含むファイル名。 このファイルには、ユーザー ID、許可 ID、パスワード (プレーン・テキスト)、および別々の行で使用するレルムが含まれている必要があり、root (またはトラステッド・ユーザー) のみが読み取ることができなければなりません。 レルムが指定されていない場合は、 ¥ j が使用されます。 |
| DefaultCharSet=文字セット | 8ビット文字を持つがMIMEフォーマットではないメッセージがMIMEに変換されるとき(EightBitModeオプションを参照)、文字セットがContent-Type:ヘッダーに含まれなければならない。 この文字セットは通常、メーラー記述子の 文字セット = フィールドから設定されます。 設定されていない場合は、このオプションの値が使用されます。 このオプションが設定されていない場合は、値 unknown-8bit が使用されます。 |
| DataFileBufferSize =しきい値 | メモリー・ベースのキュー・データ・ファイルがディスク・ベースになる前に、 しきい値 をバイト単位で設定します。 デフォルトは 4096 バイトです。 |
| DeadLetterDrop=ファイル | 以前は /usr/tmp/dead.letterにハードコーディングされていた、システム全体の dead.letter ファイルの場所を定義します。 このオプションが設定されていない場合、 sendmail は、ユーザーまたは postmaster にメールをバウンスできない場合に、システム全体の dead.letter ファイルへの保管を試みません。 代わりに、 QF ファイルの名前を変更します。 |
| DefaultUser=ユーザー:グループ | メール配信者のデフォルト・ユーザー ID を ユーザー: グループに設定します。 group が省略され、 user が (数値のユーザー ID ではなく) ユーザー名である場合、そのユーザーの /etc/passwd ファイルにリストされているデフォルト・グループがデフォルト・グループとして使用されます。 ユーザー と グループ は両方とも数値にすることができます。 メーラー定義に S フラグが指定されていないメーラーは、このユーザーとして実行されます。 指定しない場合、デフォルトは 1:1です。 この値は、シンボリック・ユーザー名として指定することもできます。 |
| 配送モード=x | Xモードでデリバーします。 正しいモードは以下のとおりです。
注: 内部的な理由により、受信者を拒否または削除できるフィルターが有効になっている場合、 I は機能しません。 その場合、モードは Bに変更されます。
|
| DialDelay =スリープタイム | ダイヤル・オンデマンド・ネットワーク接続では、呼び出しがセットアップされる前に接続が開かれると、タイムアウトを確認できます。 これがインターバルに設定され、接続が試行された最初の接続でタイムアウトになった場合、 SendMail はこの時間だけスリープし、再試行します。 これにより、サービス・プロバイダーへの接続を確立するための時間がシステムに与えられます。 単位のデフォルトは秒であるため、 DialDelay=5 は 5 秒の遅延を使用します。 指定しない場合、デフォルトは 0 (再試行なし) です。 |
| DontBlameSendmail =オプション,オプション,... | 全ユーザー書き込み可能ファイルおよびグループ書き込み可能ディレクトリーが原因で発生する可能性のあるクラック試行を回避するために、 SendMail は、サポート・ファイルのほとんどを開くときに、パラノイド検査を行います。 ただし、グループ書き込み可能 /etc ディレクトリーを使用してシステムを実行する必要がある場合は、この検査をオフにする必要があります。 この検査をオフにすると、システムが攻撃に対してより脆弱になることに注意してください。 引数は、チェックをオフにする個々のオプションです。
|
|
|
|
|
|
|
|
|
安全 がデフォルトです。 これらのフラグの詳細については、上記で説明します。 このオプションの使用は推奨されません。 |
|
| DontExpandCnames | 標準では、メールメッセージで使用されるすべてのホストアドレスは、完全な正規アドレスでなければなりません。 例えば、ホストの名前が Cruft.Foo.ORG であり、別名が FTP.Foo.ORG。名前 Cruft.Foo.ORG は常に使用する必要があります。 これは、ホスト名の正規化 ($[... $] ルックアップ) 時に適用されます。 このオプションが設定されている場合、プロトコルは無視され、誤った名前が使用されます。 ただし、IETF はこの標準を変更する方向に進んでいるため、この動作は許容される可能性があります。 ダウンストリームのホストは、実際の正規名になるようにアドレスを再書き込みする可能性があることに注意してください。 |
| DontInitGroups | 設定されている場合、 SendMail は 初期化グループ (3) 呼び出しの使用を回避します。 NIS を実行している場合、 groups.byname マップの順次スキャンが行われます。これにより、NIS サーバーが大きなドメインで過負荷になる可能性があります。 このコストは、ユーザーに対して検出される唯一のグループが、そのユーザーの 1 次グループ (パスワード・ファイル内のグループ) になることです。これにより、ファイル・アクセス許可がある程度制限されます。 グループ・リストを持たないシステムには影響しません。 |
| DontProbeInterfaces | Sendmail は通常、始動時にマシン上でアクティブなすべてのインターフェースの名前を検出し、それらの名前を既知のホスト別名の $= w クラスに追加します。 多数の仮想インターフェースがある場合、または DNS 逆ルックアップの速度が遅い場合は、時間がかかる可能性があります。 このオプションは、そのプロービングをオフにします。 ただし、他の何らかのメカニズムによって $= w クラスにすべてのバリアント名を含める必要があります。 |
| DontPruneRoutes | Sendmail は、エラー・メッセージの送信時に不要な明示経路を除去しようとします (RFC 1123 S 5.2.6で説明しています)。 例えば、エラー・メッセージを <@known1,@known2,@known3:user@unknown>に送信すると、 sendmail は、できるだけ直接経路を作成するために @known1,@known2 を除去します。 ただし、 RR オプションが設定されている場合、これは使用不可になり、後続のアドレスが分かっていても、メールは経路の最初のアドレスに送信されます。 これは、ファイアウォールの背後でキャッチされた場合に役立つことがあります。 |
| DoubleBounceAddress =エラーアドレス | エラー・メッセージの送信時にエラーが発生した場合は、示されたアドレスにエラー・レポートを送信します。 これは、別のエラー・バウンスを送信しようとしたときに発生するエラー・バウンスであるため、 ダブル・バウンス と呼ばれます。 アドレスは、配布時に展開されるマクロです。 設定されていない場合は、デフォルトで postmasterに設定されます。 |
| 項目 | 説明 |
|---|---|
| EightBitMode=アクション | 8 ビット・データの処理を設定します。 8 ビット・データには、以下の 2 種類があります。
以下の 3 つの基本的な操作が発生する可能性があります。
実行可能なアクションは次の通りです:
いずれの場合も、適切に宣言された 8BITMIME データは、必要に応じて 7BIT に変換されます。 |
| エラーヘッダー=ファイルまたはメッセージ | エラー・メッセージの前に、示されたメッセージを付加します。 スラッシュ (/) で始まる場合は、メッセージを含むファイルのパス名と見なされます。これは推奨される設定です。 それ以外の場合は、リテラル・メッセージです。 エラー・ファイルには、エンド・ユーザーに支援を提供できるローカル postmaster の名前、E メール・アドレス、および/または電話番号が含まれている可能性があります。 オプションが欠落しているかヌルの場合、または存在しないか読み取り可能でないファイルを指定している場合は、メッセージは印刷されません。 |
| エラーモード=x | モード Xを使用してエラーを処理します。 X の値は次のとおりです。
|
| .llbackMXhost=fallbackhost | これを指定すると、 フォールバック・ホスト は、すべてのホストで非常に低い優先順位の MX のように動作します。 これは、ネットワーク接続が不十分なサイトで使用するためのものです。 DNS障害など、一時的なアドレス障害により配信不能となったメッセージもFallBackMXホストに送られます。 |
| FallBackSmartHost=hostname | 指定された場合、FallBackSmartHostは各ホストに対して最後の切り札として使用される。 |
| FastSplit | ゼロより大きい値 (デフォルトは 1) に設定すると、最初にソートされたとき、つまり最初の配信試行のときに、アドレスに対する MX ルックアップが抑止されます。 これにより通常、MX レコードがローカル DNS キャッシュですぐに使用できる場合を除き、エンベロープの分割が速くなります。 |
| ForkEachJob | 設定されている場合は、キューから実行される各ジョブを別個のプロセスで送信します。 このオプションは、メモリー不足の場合に使用します。デフォルトでは、キューの処理中に大量のメモリーを消費する傾向があるためです。 |
| ForwardPath=パス | ユーザーの 転送 (.forward) ファイルを検索するためのパスを設定します。 デフォルトは $z/.forwardです。 自動マウント機能を使用する一部のサイトでは、システム・ディレクトリー内のユーザーと同じ名前のファイルを検索するために、これを /var/forward/$u に変更することができます。 また、コロンで区切られた一連のパスに設定することもできます。 Sendmail は、正常にオープンできた最初のファイルで停止します。 例:最初に /var/forward/username で検索し、次に ~username/.forwardで検索します。ただし、最初のファイルが存在しない場合に限ります。 |
| HelpFile=ファイル | SMTP のヘルプ・ファイルを指定します。 ファイル名を指定しない場合は、 helpfile が使用されます。 |
| HoldExpensive | 発信メーラーがコストが高いとマークされている場合は、即時に接続しないでください。 これは、実際にメールを送信するためにキュー実行プロセスに依存するため、キューイングをコンパイルする必要があります。 |
| ホストファイル=パス | ホスト・データベース (通常は /etc/hosts) へのパスを指定します。 このオプションは、 SendMail がアドレスを正規化している場合にのみ参照され、 ファイル が ホスト サービス・スイッチ・エントリーにある場合にのみ参照されます。 特に、このファイルは、ホスト・アドレスを検索するときには使用されません。これは、システム gethostbyname (3) ルーチンの制御下にあります。 |
| ホスト状態ディレクトリ=パス | 長期ホスト状況情報の場所を設定します。 設定されている場合、ホストの状況に関する情報 (ホストがダウンしているか、接続を受け入れないかなど) は、すべての SendMail プロセス間で共有されます。 通常、この情報は単一のキュー実行内でのみ保持されます。 このオプションを使用するには、少なくとも 1 の接続キャッシュが機能している必要があります。 オプションが先頭の /で始まる場合は、絶対パス名です。それ以外の場合は、メール・キュー・ディレクトリーを基準とした相対パス名です。 永続ホスト状況を必要とするサイトの推奨値は .hoststatです。これは、キュー・ディレクトリーのサブディレクトリーです。 |
| IgnoreDots | 着信メッセージ内のドットを無視します。 これは、SMTP メールの読み取り時には常に無効になります。その結果、ドットは常に受け入れられます。 |
| LDAPDefaultSpec=スペック | LDAP マップのデフォルト・マップ仕様を設定します。 この値には、 -h host -p port -d bindDNなどの LDAP 固有の設定のみを含める必要があります。 この設定は、個々のマップ指定が設定をオーバーライドしない限り、すべての LDAP マップに使用されます。 このオプションは、LDAP マップを定義する前に設定する必要があります。 |
| ログレベル=n | ログ・レベルを Nに設定します。 デフォルトは 9です。 |
| MX 値 | マクロ X を値に設定します。 これは、コマンド行からの使用のみを目的としています。 -M (M) フラグが優先されます。 |
| MatchGECOS | ゲコス フィールドでファジー・マッチングを許可します。 このフラグが設定されていて、通常のユーザー名検索が失敗した場合 (つまり、この名前の別名がなく、 getpwnam が失敗した場合)、 ゲコス フィールド内の一致する項目を見つけるためにパスワード・ファイルを順次検索します。 また、コンパイル時に MATCHGECOS (一致) をオンにする必要があります。 このオプションは推奨されません。 注: ファジー・マッチングは、NIS モジュールおよびシステム内のローカル・ユーザーに対してのみ実行されます。
|
| マックスエイリアス再帰=N | N は、別名再帰の最大の深さです。 デフォルトは10です。 |
| 最大デーモン数=N | 設定されている場合、 SendMail は、受信メールまたは自動キュー実行を処理する子の数が N を超えると、接続を拒否します。 これによって発信接続の数が制限されることはありません。 設定しない場合、子の数に制限はありません。これは、システム負荷平均によって制御されます。 デフォルトの DeliveryMode (バックグラウンド) が使用されている場合、 sendmail は、(トランザクションの数、およびメール受信とメール配信の相対実行時間に応じて) ほぼ無制限の数の子を作成することがあります。 制限を適用する必要がある場合は、バックグラウンド以外の DeliveryMode を使用する必要があります。 設定されていない場合、子の数に制限はありません。つまり、システム負荷平均によってこれが制御されます。 |
| 最大ヘッダー長=N | N は、すべてのヘッダーの合計の最大長です。 これは、サービス妨害攻撃を防ぐために使用できます。 デフォルトは無制限です。 |
| 最大ホップ数=N | 最大ホップ・カウント。 N 回を超えて処理されたメッセージは、ループに入っていると見なされ、拒否されます。 デフォルトは25です。 |
| 最大メッセージサイズ=N | ESMTP EHLO 応答で通知される最大メッセージ・サイズを指定します。 N より大きいメッセージはリジェクトされます。 |
| MaxMimeHeaderLength =N[/M]。 | 特定の MIME ヘッダー・フィールド値の最大長を N 文字に設定します。 分 が指定されている場合、パラメーターを取る特定のヘッダーは、 Nの代わりに 分 を使用します。 分 が指定されていない場合、これらのヘッダーは Nの半分を使用します。 デフォルトでは、これらの値は 0です。これは、検査が行われないことを示します。 |
| マックスキューランサイズ=N | N は、1 回のキュー実行で処理されるジョブの最大数です。 設定しない場合、サイズに制限はありません。 キューが非常に大きい場合、またはキューの実行間隔が非常に短い場合は、不安定になる可能性があります。 ただし、キュー・ディレクトリーの順序で最初の N 個のジョブが実行されるため ( N 個の最も優先順位の高いジョブではなく)、キュー・ディレクトリーで遅れてしまうジョブが失われないように、できるだけ高い値に設定する必要があります。 注: このオプションは、 メールによって印刷される項目の数も制限します。 つまり、MaxQueueRunSizeがゼロより大きな値Nに設定されている場合、キューグループごとにN個のエントリのみが印刷される。
|
| MaxRecipientsPerMessage =N | SMTP トランザクション内のメッセージごとに受け入れられる受信者の最大数。 設定しない場合、エンベロープごとの受信者数に制限はありません。 注: これを低すぎる値に設定すると、初期送信に SMTP を使用する MUA からのメールの送信を妨げる可能性があります。
|
| MeToo | 別名拡張を使用している場合でも、自分にも送信してください。 このオプションは非推奨であり、将来のバージョンから削除される予定です。 |
| 最小フリーブロック=N | SMTP 経由で E メールを受け入れる前に、キュー・ファイルを保持するファイル・システム上で、少なくとも N ブロックを解放するように設定します。 スペースが不足している場合、 SendMail は、 メール コマンドに対して 452 応答を返し、後で再試行するように送信者を招待します。 |
| MinQueueAge =年齢 | 示されている時間間隔より短い間、キューに入れられたジョブを処理しません。 これにより、頻繁にジョブを試行することによってシステムに負担をかけることなく、キューを頻繁に処理することで、システムの応答性が向上します。 デフォルトの単位は分です。 |
| マストクォート文字=s | phrase <address> 構文の句の部分にあるフルネームで使用する場合に引用符で囲む必要がある文字のリストを設定します。 デフォルトは '.です。 文字 @,;:\()[] は常にこのリストに追加されます。 |
| NoRecipientAction | 有効な受信者ヘッダーのないメッセージ (
|
| OldStyleHeaders | ヘッダーは、名前をスペースで区切って古い形式にすることができます。 これにより、アダプティブ・アルゴリズムが実際にオンになります。受信者アドレスにコンマ、括弧、または不等号括弧が含まれている場合は、コンマが既に存在していると想定されます。 このフラグがオンでない場合、名前を区切るのはコンマのみです。 ヘッダーは常に、名前の間にコンマを付けて出力されます。 デフォルトは offです。 |
| 演算子文字=チャールリスト | 演算子と見なされる文字のリスト。つまり、トークンを区切る文字です。 演算子文字はすべて、それ自体がトークンです。演算子以外の文字のシーケンスもトークンです。 空白文字はトークンを分離しますが、トークン自体ではありません。 例えば、 AAA.BBB には 3 つのトークンがありますが、 AAA BBB には 2 つのトークンがあります。 設定されていない場合、 OperatorChars はデフォルトで .:@[]"になります。 さらに、文字 "()<>,;" は常に演算子です。 OperatorChars は、どのルール・セットよりも前に構成ファイル内で設定する必要があることに注意してください。 |
| PidFile=ファイル名 | pid ファイルの ファイル名 を設定します。 デフォルトはPATHSENDMAILPIDです。 ファイル名は、オープンされる前にマクロで展開されます。 |
| PostmasterCopy=ポストマスター | 設定されている場合、エラー・メッセージのコピーは、指定された ポストマスターに送信されます。 失敗したメッセージのヘッダーのみが送信されます。 負の優先順位を持つメッセージに起因するエラーは送信されません。 ほとんどのエラーはユーザーの問題であるため、これは大規模サイトでは適切ではなく、プライバシー違反が含まれている可能性があります。 アドレスは、配布時に展開されるマクロです。 デフォルトは no postmaster copiesです。 |
| プライバシーオプション=opt,opt,... | プライバシー・オプションを設定します。 これらは、SMTP プロトコルへの厳密な準拠を主張する方法です。 オプションは次の 1 つとすることができます。
|
| オプション | 説明 |
|---|---|
| ProcessTitlePrefix =文字列 | Ps リストに表示されるプロセス・タイトルの前に ストリングを付けます。 ストリングはマクロ処理されます。 |
| キューディレクトリ=dir | 指定された ディレクトリー をキュー・ディレクトリーとして使用します。 複数のキューを使用するには、アスタリスクで終わる値を指定します。 例えば、 /var/spool/mqueue/q* と入力すると、 /var/spool/mqueue 内の q で始まるすべてのディレクトリーまたはディレクトリーへのシンボリック・リンクがキュー・ディレクトリーとして使用されます。 sendmail の実行中は、キュー・ディレクトリー構造を変更しないでください。 |
| キューファクター=ファクター | ジョブを実行するのではなく、単にキューに入れるタイミングを決定するには、マップ機能の乗数として 因子 を使用します。 この値は、送信される最大メッセージ優先順位を決定するために、現在のロード平均とロード平均制限 (QueueLA オプション) の差で除算されます。 デフォルトは600000です。 |
| Que ueLA=LA | システム負荷の平均が ロサンゼルスを超えた場合は、メッセージをキューに入れるだけで、メッセージの送信を試行しません。 8 に、システム上でオンラインになっているプロセッサーの数を乗算した値 (判別できる場合) をデフォルトとして使用します。 |
| QueueSortOrder=アルゴリズム | キューのソートに使用する アルゴリズム を設定します。 値の先頭文字のみが使用されます。 有効な値は以下のとおりです。
|
| キュータイムアウト=タイムアウト | 使用しないでください。 Timeout.queuereturnを使用してください。 |
| RandFile | ランダム・データが入っているファイルの名前、または EGD が使用されている場合はソケットの名前。 必須の接頭部 egd: または file: は、タイプを指定します。 コンパイル・フラグ HASURANDOM が設定されていない場合、 STARTTLS にはこのファイル名が必要です ( /user/samples/tcpip/sendmail/READMEを参照)。 |
| ResolverOptions=オプション | リゾルバー・オプションを設定します。 値は +旗 を使用して設定でき、-旗を使用してクリアできます。 使用可能なフラグは以下のとおりです。
ストリング
HasWildcardMX ( + または -なし) を指定すると、名前の正規化を行うときに MX レコードに対する突き合わせをオフにすることができます。注: 以前のリリースでは、このオプションは、アドレスを受け入れるためにネーム・サーバーが応答することを示していました。 これは、DNS メソッドがホスト・サービスのサービス・スイッチ・エントリーにリストされているかどうかを確認することによって置き換えられました。
|
| RrtImpliesDsn | このオプションが設定されている場合、 ReturnReceipt-To: ヘッダーにより、DSN の要求は、ヘッダーに指定されているアドレスではなく、 RFC1891によって要求されたエンベロープ送信側に送信されます。 |
| RunAsUser =ユーザー | ユーザー・パラメーターは、ユーザー名 ( /etc/passwdで検索) または数値のユーザー ID にすることができます。 どちらの形式でも :group を関連付けることができ、 group は数値または記号にすることができます。 非ゼロ/非 root 値に設定すると、 sendmail は始動直後にこのユーザー ID に変更されます。 これにより、特定のクラスのセキュリティー問題が回避されます。 ただし、これは、すべての .forward および :include: ファイルが示されたユーザーによって読み取り可能でなければならず、書き込まれるすべてのファイルが userによって書き込み可能でなければならないことを意味します。 また、「DontBlameSendmail=NonRootAddrSafeオプションが設定されていない限り、ファイルやプログラムの配送はすべて「unsafe」とマークされ、その場合は「ユーザー」として配送される。 また、SafeFileEnvironmentオプションとも互換性がない。 これは、平均的なシステムでは実際にはセキュリティーを強化するものではなく、他のファイル・アクセス権を緩める必要があるため、実際にはセキュリティーを低下させる可能性があります。 ただし、ユーザーがアカウントを持たず、別名ファイルが十分に制限されているファイアウォールやその他の場所で使用すると便利な場合があります。 |
| RecipientFactor=ファクト | 示されている 事実、または各受信者の優先順位に追加されているため、ジョブの優先順位が下がります。 この値は、多数の受信者がいるジョブにペナルティーを科します。 デフォルトは 30000です。 |
| リフューズLA=LA | システム負荷の平均が ロサンゼルスを超えると、着信 SMTP 接続を拒否します。 デフォルトは、システム上でオンラインになっているプロセッサーの数の 12 倍です (判別できる場合)。 |
| リトライ係数=事実 | 事実は、ジョブが処理されるたびに優先順位に追加されます。 ジョブが処理されるたびに, その優先順位は指示された値だけ減らされます。 ほとんどの環境では、ダウンしているホストが長時間ダウンする可能性があるため、これは正である必要があります。 デフォルトは90000です。 |
| セーフファイル環境=dir | このオプションが設定されている場合、 SendMail は、ファイル書き込みを行う前に、示されているディレクトリーに対して ルート (2) 呼び出しを行います。 ユーザーが指定したファイル名が ディレクトリーで始まる場合、その部分パス名は書き込み前に除去されます。 たとえば、SafeFileEnvironment変数が「/safe」に設定されている場合、「/safe/logs/file」と「/logs/file」のエイリアスは実際には同じファイルを示している。 また、このオプションが設定されている場合、 sendmail はシンボリック・リンクへの配信を拒否します。 |
| SaveFromLine | ヘッダーの先頭に 送信元 行を保存します。 これらは冗長であると想定され、破棄されます。 |
| SendMimeErrors | 設定されている場合は、MIME 形式でエラー・メッセージを送信します (詳しくは、 RFC2045 および RFC1344 を参照してください)。 無効にすると、 SendMail は EHLO (E) への応答で DSN キーワードを返さず、 RFC1891で説明されているように Delivery Status Notification 処理を実行しません。 |
| ServerCertFile | サーバーの証明書を含むファイル。 この証明書は、 SendMail がサーバーとして機能する場合に使用されます。 |
| ServerKeyFile | サーバー証明書に属する秘密鍵を含むファイル。 |
| ServiceSwitchFile=ファイル名 | ホスト・オペレーティング・システムにサービス・スイッチ抽象化がある場合、そのサービスは参照され、このオプションは無視されます。 それ以外の場合、これは、特定のサービスの実装に使用されるメソッドのリストを提供するファイルの名前です。 構文は一連の行で、それぞれの行は一連の単語です。 最初のワードはサービス名で、後続のワードはサービス・タイプです。 SendMail が直接参照するサービスは、 別名 および ホストです。 サービス・タイプは、 DNS、 ニス、または ファイルのいずれかです。 サービスを参照する前に、適切なサポートをコンパイルする必要があります。 ServiceSwitchFileが指定されていない場合、デフォルトは/etc/mail/service.switchです。 そのファイルが存在しない場合、デフォルトの切り替えは次のようになります。デフォルトのファイルは /etc/mail/service.switchです。 |
| SevenBitInput | 旧システムとの互換性のために、入力を 7 ビットにストリップします。 これは必要ありません。 |
| SingleLineFromHeader | これを設定すると、改行を埋め込んだ 開始: 行が 1 行にアンラップされます。 これは、合法的にラップされたRFC822ヘッダーを理解できないLotus Notesのバグを回避するためである。 |
| SingleThreadDelivery | 設定されている場合、クライアント・マシンは、異なるプロセスであっても、単一サーバー・マシンへの 2 つの SMTP 接続を同時に開くことはありません。 つまり、別の SendMail が既に何らかのホストと対話している場合、新しい SendMail は別の接続を開きません。 これにより、他のマシンの負荷が軽減されますが、メールが遅延する可能性があります。 例えば、1 つの SendMail が巨大なメッセージを配信している場合、他の SendMail プロセスは小さなメッセージでも送信できません。 また、接続ごとに(ロック・ファイル用に)もう1つのファイル・ディスクリプタを必要とするので、プロセスごとのファイル・ディスクリプタが不足しないように、ConnectionCacheSizeオプションを小さくする必要があるかもしれない。 HostStatusDirectoryオプションが必要です。 |
| SmtpGreetingMessage =メッセージ | SMTP サーバーの始動時に印刷する メッセージ を指定します。 デフォルトは |
| StatusFile=ファイル | 指定された ファイルに要約統計を記録します。 ファイル名を指定しない場合は、 statistics が使用されます。 設定しない場合、要約統計量は保存されません。 このファイルのサイズは大きくなりません。 これは、 mailstats (8) プログラムを使用して印刷できます。 |
| SuperSafe | 即時配信を試行する場合でも、常にキュー・ファイルをインスタンス化してください。 Sendmail は常に、どのような状況でも、クライアントに制御を戻す前にキュー・ファイルをインスタンス化します。 これは常に設定する必要があります。 |
| TempFileMode=モード | キュー・ファイルのファイル・モードを指定します。 デフォルトでは 8 進数で解釈されます。 デフォルトは 0600 です。 |
| Timeout.type= time-out | タイムアウト 値を設定します。 詳しくは、 読み取りタイムアウトを参照してください。 |
| タイムゾーンスペック=tzinfo | ローカル・タイム・ゾーン情報を TZINFOに設定します。 これが設定されていない場合、TZ 環境変数はクリアされ、システム・デフォルトが使用されます。 設定されているが NULL の場合は、ユーザーの TZ 変数が使用されます。 設定されていて NULL 以外の場合、TZ 変数はこの値に設定されます。 |
| TrustedUser =ユーザー | ユーザー・パラメーターには、ユーザー名 ( /etc/passwdで検索) または数値のユーザー ID を指定できます。 ファイル所有権およびデーモンの開始のためのトラステッド・ユーザー。 設定されている場合、生成された別名データベースおよび制御ソケット (構成されている場合) は、このユーザーによって自動的に所有されます。 |
| TryNullMXList | このシステムが特定のホストの best (つまり、最低優先度) MX である場合、その構成ルールは、この状態を検出し、メールを UUCP フィードに転送したり、ローカルとして処理したりするなどして、その状態を特別に処理する必要があります。 ただし、場合によっては (インターネット・ファイアウォールの場合など)、MX レコードがまったくない場合と同様に、そのホストへの直接接続を試行することができます。 このオプションを設定すると、 sendmail はこれを試行します。 残念ながら、構成内のエラーは、より意味のあるものではなく、「ホスト不明」または「メッセージ・タイムアウト」と診断される可能性があります。 このオプションは推奨されません。 |
| UnixFromLine=フロムライン | sendmail が UNIXスタイルの From 行 ( From<space>userで始まる行など) を追加する必要がある場合に使用するフォーマットを定義します。 デフォルトは From $g $dです。 ご使用のシステムで別のメールボックス・フォーマットを使用していない場合は、これを変更しないでください。 |
| UnsafeGroupWrites | 設定されている場合、グループ書き込みが可能な :include: ファイルおよび 転送 (.forward) ファイルは安全ではないと見なされ、プログラムを参照したり、ファイルに直接書き込むことはできません。 全ユーザー書き込み可能 :include: ファイルおよび 転送 (.forward) ファイルは、常に安全ではありません。 |
| UserDatabaseSpec =udbspec | ユーザー・データベースの指定。 |
| verbose | 詳細モードで実行します。 これが設定されている場合、 sendmail はオプション HoldExpensive および DeliveryMode を調整して、すべてのメールが単一のジョブで完全に配信されるようにし、配信プロセス全体を確認できるようにします。 詳細 オプションは、構成ファイル内では設定しないでください。これは、コマンド行での使用のみを目的としています。 |
| XscriptFileBufferSize =しきい値 | メモリー・ベースのキュー書き起こしファイルがディスク・ベースになる前に、 しきい値 をバイト単位で定義します。 デフォルトは 4096 バイトです。 |
すべてのオプションは、コマンド行で -O (O) フラグまたは - フラグを使用して指定できますが、ほとんどの場合、 SendMail は setuid 許可を解放します。 これが発生しないオプションは、SevenBitInput、EightBitMode、MinFreeBlocks、CheckpointInterval、DeliveryMode、ErrorMode、IgnoreDots、SendMimeErrors、LogLevel、OldStyleHeadersです、PrivacyOptions、SuperSafe、Verbose、QueueSortOrder、MinQueueAge、DefaultCharSet、DialDelay、NoRecipientAction、ColonOkInAddr、MaxQueueRunSize、SingleLineFromHeader、およびAllowBogusHELO。 実際には、コマンドラインで与えられたPrivacyOptionsは、すでにコンフィギュレーション・ファイルで指定されているものに追加され、リセットすることはできない。 また、 R または S マクロを定義する際の 分 (定義マクロ) も安全であると見なされます。
P-優先順位定義
Pname=num名前が「Precedence:」フィールドにある場合、メッセージ・クラスは num. に設定されます。 数値が大きいほど、優先順位が高くなります。 ゼロより小さい数値には、処理中にエラーが発生した場合にメッセージの本文が返されないという特殊なプロパティーがあります。これは、メーリング・リストなどの「バルク」メールに使用されることが予期されます。 デフォルトの優先順位はゼロです。 例えば、デフォルトの優先順位のリストは以下のとおりです。
- Pfirst-class=0
- Pspecial-delivery=100
- Plist=-30
- Pbulk=-60
- Pjunk=-100
V-構成バージョン・レベル
古い構成ファイルとの互換性を提供するために、構成ファイルの基本セマンティクスを定義する V 値 行が追加されました。 これは、 ない 長期サポートを目的としています。 これらの互換フィーチャーは、将来のリリースで削除される可能性があります。
「古い」構成ファイルは、バージョン・レベル 1 として定義されます。
バージョン・レベル 2 のファイルは、以下の変更を行います。
- ホスト名の正規化 ($[... $]) は、名前が認識されるとドットを付加します。 これにより、一致が発生したかどうかを判別する方法が構成ファイルに提供されます。 これにより、 -a。 を使用してホスト・マップが初期化されます。 フラグ。 マップを明示的に宣言することにより、それ以外のものにリセットすることができます。
- デフォルトのホスト名拡張子は、処理全体で一貫性があります。 バージョン・レベル 1 の構成は、ローカル・ドメイン・ネームを追加することにより、処理中の特定のポイントでドメイン拡張をオフにします。 バージョン・レベル 2 の構成には、名前が既に正規名であることを示す末尾のドットが含まれています。
- 別名ではないローカル名は、新しい識別ルール・セット 5 を通過します。 これは、ローカル・リレーを追加するために使用できます。 これを回避するには、接頭部として @ 記号を使用してローカル名を解決します (例:
@vikki)。 ローカル・メーラーに解決され、vikkiというユーザー名がルール・セット 5 を通過しますが、@vikkiというユーザー名の接頭部 @ は除去され、ルール・セット 5 にはパススルーされませんが、それ以外の場合は前の例と同じように処理されます。 例外として、これは vikki に送信されるメールは中央ハブによって処理されるが、 vikki@localhost に送信されるメールは直接配信されるというポリシーを実装するために使用される可能性があります。
バージョン・レベル 3 のファイルでは、すべての行で # 個のコメントを開始できます。 例外は、円記号 (¥) エスケープされた # マークと $# 構文です。
バージョン・レベル 4 のファイルは、レベル 3 のファイルと同等です。
バージョン・レベル 5 のファイルは、 $w (W) のデフォルト定義をホスト名の最初のコンポーネントに変更します。
バージョン・レベル 6 の構成ファイルでは、多くのローカル処理オプション (つまり、| 文字で始まるアドレスの別名割り当てと突き合わせ) がメーラー・フラグに変更されます。 これにより、特殊なローカル処理をきめ細かく制御することができます。 バージョン・レベル 6 のファイルでは、長いオプション名を使用することもできます。 ColonOkInAddrオプション(アドレスのローカル部分にコロンを許可する)は、バージョン番号の低いコンフィギュレーション・ファイルではデフォルトでオンに設定されている。 構成ファイルには、RFC 822 グループ構成体を適切に処理するための追加の「インテリジェンス」が必要です。
バージョン・レベル 7 の構成ファイルは、新しいオプション名を使用して古いマクロを置き換えます。
| オプション | 旧マクロ |
|---|---|
| $e (E) が | SmtpGreetingMessage |
| $1 が | UnixFromLine |
| $o (O) が | OperatorChars |
バージョン 7 より前では、 F=Q フラグ (SMTP VRFY コマンドの場合は 252 の代わりに 250 の戻り値を使用) が想定されていました。
バージョン・レベル 8 の構成ファイルでは、ルール・セット行の左側に $# を指定できます。
バージョン・レベル 9 の構成ファイルでは、ルール・セット内で括弧を使用できます。つまり、これらのファイルはコメントとして扱われず、削除されます。
V 値 行には、構成ファイルがベンダー固有の変更を使用することを示すオプションの /ベンダー 変数が含まれている場合があります。 以下を使用できます。/Berkeleyファイルがバークレー SendMail ダイアレクトを使用していることを示します。
K-キー・ファイル宣言
Kmapname mapclass argumentsマップ名は、このマップが再書き込み規則で参照されるときに使用される名前です。 mapclass はマップのタイプの名前です。これらは SendMailにコンパイルされます。 引数はクラスに応じて解釈されます。通常は、マップを含むファイルに名前を付ける単一の引数があります。
$( map key $@ arguments $: default $)ここで、引数またはデフォルト部分の一方または両方を省略できます。 $@ 引数は複数回指定できます。 示されているキーと引数が、該当するマッピング関数に渡されます。 値が返されると、入力が置換されます。 値が返されず、デフォルトが指定されている場合は、入力がデフォルトに置き換えられます。 それ以外の場合、入力は変更されません。
R$- ! $+ $: $(uucp $1 $@ $2 $: %1 @ %0 . UUCP $)decvax %1@ %0.DEC.COM
research %1@%0.ATT.COM
$(host hostname$)$[hostname$]多数の定義済みクラスがあります。
| クラス | 説明 |
|---|---|
| dbm | ndbm(3) ライブラリーを使用したデータベース検索。 Sendmail は、NDBM を定義してコンパイルする必要があります。 |
| btree | バークレー DB ライブラリーへの btree インターフェースを使用したデータベース・ルックアップ。 Sendmail は、 新規データベース を定義してコンパイルする必要があります。 |
| hash | バークレー DB ライブラリーへのハッシュ・インターフェースを使用したデータベース・ルックアップ。 Sendmail は、 新規データベース を定義してコンパイルする必要があります。 |
| nis | NIS ルックアップ。 Sendmail は、 新規データベース を定義してコンパイルする必要があります。 |
| LDAP | LDAP X500 ディレクトリ検索。 Sendmail は、 LDAP マップ を定義してコンパイルする必要があります。 マップは、 LDAP 検索 プログラムのほとんどの標準引数およびコマンド行引数をサポートします。 デフォルトでは、単一の照会が複数の値と一致する場合、 -z (値区切り文字) マップ・フラグが設定されていない限り、最初の値のみが返されます。 また、 -1 マップ・フラグは、複数値の戻りを、一致するものがないかのように扱います。 |
| LDAPX | LDAP X500 ディレクトリ検索。 Sendmail は、LDAPMAP を定義してコンパイルする必要があります。 マップは、 LDAP 検索 プログラムのほとんどの標準引数およびコマンド行引数をサポートします。 |
| text | テキスト・ファイル・ルックアップ。 テキスト・ファイルのフォーマットは、 -k (K) (キー・フィールド番号)、 -v (V) (値フィールド番号)、および -z (フィールド区切り文字) フラグによって定義されます。 |
| STAB | 内部シンボル・テーブル・ルックアップ。 別名割り当てのために内部で使用されます。 |
| implicit | 実際には、「別名」と呼ばれる必要があります。 これは、別名ファイルのデフォルトのルックアップを取得するために使用され、別名ファイルのクラスが指定されていない場合のデフォルトです。 |
| User | getpwnam(3)を使用してユーザーを検索します。 -v (V) フラグを使用して、返すフィールドの名前を指定できます (ただし、これは通常、ユーザーの存在を確認するためにのみ使用されます)。 |
| host | ホスト・ドメイン・ネームを正規化します。 ホスト名を指定すると、ネーム・サーバーを呼び出して、そのホストの正規名を検索します。 |
| 石綿 | キーとして指定されたホスト名の最適な MX レコードを返します。 現行マシンが常に優先されます。 例えば、現行マシンが最低優先度の MX レコードとしてリストされているホストの 1 つである場合、そのマシンが返されることが保証されます。 これは、このマシンが MX レコードのターゲットであるかどうかを調べるために使用でき、そのベースでメールを受け入れることができます。 -z フラグを指定すると、すべての MX 名が (指定された区切り文字で区切って) 返されます。 |
| sequence | 「K」行の引数はマップのリストです。結果のマップは、指定されたキーと一致するものが見つかるまで、引数マップを順番に検索します。 例えば、キー定義が次のようになっているとします。
「seqmap」に対するルックアップは、最初に map1でルックアップを実行します。 それが検出されると、即時に戻ります。 それ以外の場合は、同じ鍵が map2に使用されます。 |
| syslog | 鍵は syslogd(8)を介してログに記録されます。 ルックアップは空ストリングを返します。 |
| switch | 「シーケンス」マップとよく似ていますが、マップの順序はサービス・スイッチによって決定される点が異なります。 引数は、検索されるサービスの名前です。新しいマップ名を作成するために、サービス・スイッチの値がマップ名に付加されます。 例えば、以下のキー定義について考えてみます。
およびサービス・スイッチ項目:
これにより、マップ「ali」に対する照会では、「ali.nis」および「ali.files」という名前のマップがこの順序で検索されます。 |
| デクォート | 二重引用符 (") の除去 名前から削除されます。 円記号は除去されません。また、結果のストリングにスキャンできない構文が含まれる場合は、引用符が除去されません (つまり、不均一な不等号括弧などの基本エラー。不明ホストなどのより高度なエラーは検査されません)。 この目的は、以下のような奇数構文を日常的に引用する DECnet などのシステムからメールを受け入れようとする場合に使用されます。
典型的な使用法としては、次のようなものが考えられます。
予期しない結果が発生しないように注意する必要があります。例えば、次のようにします。
引用符は除去されますが、結果は意図したものではない可能性があります。 幸い、これらのケースはめったにありません。 |
| regex | K 行のマップ定義に正規表現が含まれています。 キー入力はすべて、 POSIX 正規表現ルーチン regcomp ()、 regerr ()、および regexec ()を使用してその式と比較されます。正規表現のマッチングについて詳しくは、これらのルーチンの資料を参照してください。 -m (M) フラグが使用されている場合、鍵の再書き込みは行われません。 これを指定しない場合、キーは破棄されます。 -s を使用する場合は、 $| フラグまたは -d 年 フラグで指定されたストリングで区切られたサブストリングの一致で置換されます。 マップに使用可能なフラグは、以下のとおりです。
-s フラグには、ルックアップの結果のサブストリングを選択するために使用できるオプション・パラメーターを含めることができます。 例:-s1,3,4. |
| プログラム | K 行の引数は、プログラムへのパス名と、渡されるすべての初期パラメーターです。 マップが呼び出されると、キーが初期パラメーターに追加され、プログラムがデフォルトのユーザー/グループ ID として呼び出されます。 標準出力の最初の行は、ルックアップの値として戻されます。 これには、多くの潜在的なセキュリティー問題とパフォーマンスの低下があります。 これは絶対に必要な場合にのみ使用してください。 |
| MACRO | マクロ値を設定またはクリアします。 マクロを設定するには、値をマップ・ルックアップの最初の引数として渡します。 マクロをクリアするには、マップ・ルックアップで引数を渡さないでください。 マップは常に空ストリングを返します。 標準的な使用法の例を以下に示します。
|
| ARITH | 単純な算術演算を実行します。 操作はキーとして指定され、現在は
|
これらのほとんどは、同じオプション・フラグとファイル名 (または NIS の場合はマップ名。ファイル名はデータベース・パスのルートであるため、実際のデータベース名を取得するために、データベース・タイプに適した .db またはその他の拡張機能が追加されます) を引数として受け入れます。 既知のフラグは以下のとおりです。
| フラグ | 説明 |
|---|---|
| -o | このマップがオプションであることを示します。 つまり、開くことができない場合、エラーは生成されず、 SendMail はマップが存在しても空であるかのように動作します。 |
| -N (N), -O (O) | -N (N) も -O (O) も指定されていない場合、 SendMail は適応アルゴリズムを使用して、鍵の末尾でヌル・バイトを検索するかどうかを決定します。 これは両方を試行することから始まります。ヌル・バイトを持つキーを検出した場合は、ヌル・バイトなしで再試行することはなく、その逆も同様です。 -N (N) が指定されている場合は、ヌル・バイトなしで試行することはありません。 -O (O) が指定されている場合は、ヌル・バイトで試行することはありません。 これらのいずれかを設定すると、マッチングの速度を上げることができますが、必要ありません -N (N) と -O (O) の両方が指定されている場合、 SendMail が一致を試行することはありません。 つまり、すべてが失敗したように見えます。 |
| -a 値 X | 正常に一致した場合は、文字列 X を追加します。 例えば、デフォルトのホスト・マップは、成功した一致にドットを付加します。 |
| -T (T) X | 一時的な障害の場合は、文字列 x を追加します。 例えば、DNS 参照が返された場合は、x が付加されます。server failedまたは NIS ルックアップでサーバーを見つけることができませんでした。 追加情報については、 T フラグを参照してください。 |
| -f | キーを検索する前に、大文字を小文字に変換しないでください。 |
| -m | 一致のみ (値を置き換えない)。 キーの存在のみを考慮し、値を考慮しない場合 (例えば、NIS マップ「hosts.byname」を検索する場合など)、このフラグはマップが値を置換しないようにします。 ただし、 -a 値 引数は引き続き一致に付加され、一致が失敗した場合はデフォルトが使用されます。 |
| -k (K) Keycol | キー列名 (NIS の場合) または番号 (テキスト検索の場合)。 |
| -v (V) バルコール | 値の列名 (NIS の場合) または数値 (テキスト検索の場合)。 |
| -z デリム | 列区切り文字 (テキスト・ルックアップの場合)。 単一文字、または改行またはタブを示す特殊ストリング「¥ n」または「¥ t」のいずれかにすることができます。 完全に省略すると、列分離文字は空白文字の任意のシーケンスになります。 |
| -t | 通常、マップがルックアップを実行しようとしたときにサーバーに障害が発生すると (例えば、 SendMail がどのネーム・サーバーにも接続できませんでした。これは、マップに見つからないエントリーと同じです。 ない )、処理中のメッセージは将来の処理のためにキューに入れられます。 T フラグは、この動作をオフにして、一時的な障害 (サーバー・ダウン) が永続的な障害 (項目が見つからない) であるかのように動作するようにします。 これは特に DNS ルックアップの場合に役立ちます。DNS ルックアップの場合は、別のネーム・サーバーが誤って構成されていると、マシンで問題が発生する可能性があります。 別の試みが行われた場合に正しく解決される「バウンス」メールを避けるように注意する必要があります。 一般的な方法は、そのようなメールを別のメール・サーバーに転送することです。 |
| -D | 据え置き送達モードでルックアップを実行しません。 このフラグは、デフォルトで ホスト マップに対して設定されます。 |
| -S (S) スペース・スブ | マップ・ルックアップの成功後にスペース文字を置換するために使用する文字。 これは、特に 正規表現 マップおよび Syslog マップの場合に役立ちます。 |
| -q | ルックアップの前にキーを引用符で囲まないでください。 |
| -A | 別名ファイルを再作成する場合、 -A フラグを指定すると、テキスト・バージョン内の重複するエントリーがマージされます。 例えば、以下の 2 つの項目があるとします。
は、次のような単一の項目であるかのように扱われます。
|
以下の追加フラグは、LDAP マップにのみ存在します。
| フラグ | 説明 |
|---|---|
| -R | 参照を自動追跡しません。 このフラグを使用するには、 Sendmail を -DLAP_REFERRALS でコンパイルする必要があります。 |
| -n | 属性名のみを取得します。 |
| - 暗礁 | 別名間接参照オプションを しない、 常に、 探索、または 検索のいずれかに設定します。 |
| -s スコープ | 検索範囲を ベース、 1 つ (1 レベル)、または サブ (サブツリー) のいずれかに設定します。 |
| -h ホスト | LDAP サーバー・ホスト名。 |
| -b ベース | LDAP 検索ベース。 |
| -p ポート | LDAP サービス・ポート。 |
| - 時間制限 | LDAP 照会の時間制限。 |
| -Z サイズ制限 | LDAP 照会のサイズ (一致数) の制限。 |
| -d 年 識別名 | LDAP サーバーにログインするために使用する識別名。 |
| -M (M) 方法 | LDAP サーバーに対して認証する方式。 LDAP_AUTH_NONE、 LDAP_AUTH_SIMPLE、または LDAP_AUTH_KRBV4のいずれかでなければなりません。 |
| -P パスワード・ファイル | LDAP_AUTH_SIMPLE 認証方式の秘密鍵を含むファイル、または LDAP_AUTH_KRBV4用の Kerberos チケット・ファイルの名前。 |
| -1 | 単一の一致が検出された場合にのみ、LDAP 検索を強制的に成功させます。 複数の値が検出された場合、検索は一致が検出されなかったものとして処理されます。 |
Kuucp dbm -o -N /usr/lib/uucpmapクラス「dbm」の「uucp」という名前のオプション・マップを指定します。このマップのすべてのストリングの末尾には常にヌル・バイトがあり、データは /usr/lib/uucpmap. {dir, pag} にあります。
コマンドおよびオペランド
| コマンドおよびオペランド | 説明 |
|---|---|
| 「C」 XWord1 Word2... | 再書き込み規則の左側と突き合わせるために使用できるワードのクラスを定義します。 クラス指定子 (X) は、ASCII 文字セットの任意の大文字にすることができます。 小文字と特殊文字は、システムで使用するために予約されています。 |
| D 日 X 値 | マクロ (X) とそれに関連する 値を定義します。 マクロ指定子は、ASCII 文字セットの任意の大文字にすることができます。 小文字と特殊文字は、システムで使用するために予約されています。 |
| F XFileName [形式] | オプションの scanf フォーマット指定子を使用して、 FileName 変数からクラス (X) のエレメントを読み取ります。 フォーマット指定子には、変換指定が 1 つだけ含まれています。 FileName 変数の各行ごとに 1 つのクラス番号が読み取られます。 |
| 時間 [?MFlags?]HeaderName: HeaderTemplate | SendMail コマンドがメッセージに挿入するヘッダー形式を定義します。 継続行は定義の一部です。 HeaderTemplate は、メッセージに挿入する前にマクロで展開されます。 MFlags が指定され、指定されたフラグの少なくとも 1 つがメーラー定義に含まれている場合、このヘッダーは自動的に出力メッセージに書き込まれます。 ヘッダーが入力メッセージに表示される場合、 MFlags 変数に関係なく、ヘッダーは出力メッセージに書き込まれます。 |
| 分 名前, [フィールド=値] | メール・プログラムを定義します。 名前 変数はメール・プログラムの名前、 フィールド=値 のペアはメール・プログラムの属性を定義します。 |
| オー X[値] | オプションを X. の値に設定します。 オプションが値付きオプションである場合は、 値 変数も指定する必要があります。 オプションは、コマンド行から選択することもできます。 注: 有効な値については、 O-オプションの設定を参照してください。
|
| P 名前 = 数値 | 以下の値を定義します。Precedence:ヘッダー・フィールド。 メッセージ内で 名前 変数が検出された場合Precedence:メッセージの優先順位は 数値 変数に設定されます。 数値が大きいほど、優先順位が高いことを示します。 負の数値は、エラー・メッセージが返されないことを示します。 デフォルトの 数値 は 0 です。 |
| R LeftHandSide RightHandSideコメント | 再書き込みルールを定義します。 このコマンドの 3 つのフィールドは、1 つ以上のタブ文字で区切られます。 スペース文字をフィールド分離文字として使用する場合は、オプション J を設定する必要があります。 J オプションを使用すると、再書き込みルールの左側と右側をスペースとタブで区切ることができます。 J オプションを使用すると、タブをスペースに置き換えるエディターを使用して再書き込みルールを変更できます。 |
| S X | 現在定義されているルール・セットを、指定された数値 (X) に設定します。 ルール・セット定義が複数回開始されると、新しい定義によって古い定義が上書きされます。 |
| T 値 User1 User2 ... | システム管理者のユーザー ID を定義します。 これらの ID には、 「-f」 フラグを使用して送信者アドレスをオーバーライドする権限があります。 1 行に複数の ID を指定できます。 |
ファイル
| 項目 | 説明 |
|---|---|
| /etc/mail/sendmail.cf | sendmail.cf ファイルのパスを指定します。 |
| /etc/mail/submit.cf | submit.cf ファイルのパスを指定します。 |
| /etc/passwd | 基本ユーザー属性が入っています。 |
| /etc/mail/aliases | SendMail コマンドの別名定義が入っています。 |