次の表は、sendmail の新しいコマンド行オプションを示したものです。
表 21–1 sendmail の新しいコマンド行オプション
オプション |
説明 |
---|---|
-G |
コマンド行から送られているメッセージは中継のためであって、最初の送信ではないことを表します。アドレスが完全指定でない場合、このメッセージは拒否されます。正規化は行われません。ftp://ftp.sendmail.org から入手できる sendmail 配布の一部である『RELEASE NOTES』に記述されているように、正しくない形式のメッセージは将来のリリースでは拒否される可能性があります。 |
-L tag |
syslog メッセージで使用される識別子を指定した tag に設定します。 |
-U |
ftp://ftp.sendmail.org から入手できる sendmail 配布の一部である『RELEASE NOTES』に記述されているように、このオプションは廃止になりました。メールユーザーエージェントは、これが中継のための送信であることを示す場合は、(-U ではなく) -G 引数を使用すべきです。 |
この節は、新規および更新された構成ファイルオプションの表と、次の関連事項の情報から構成されます。
次の表に示す sendmail オプションは、通常、構成ファイルに宣言します。しかし、コマンド行から宣言することもできます。ただし、コマンド行を使用する際は、セキュリティ上のリスクを避けるために root のアクセス権を放棄します。
これらのオプションを宣言する際は、次の構文のいずれかを使用します。
O OptionName=argument # 構成ファイル用 -OOptionName=argument # コマンド行用 define(`m4Name',argument) # m4 の構成用 |
次の表では、sendmail の新規のオプションと更新されたオプションを示します。
表 21–2 sendmail の新規のオプションと更新されたオプション
オプション |
説明 |
---|---|
ClientPortOption |
詳細は、新しい ClientPortOptions オプションを参照してください。 |
ControlSocketName |
m4 名: confCONTROL_SOCKET_NAME 引数: filename。推奨ソケット名は /var/spool/mqueue/.smcontrol。セキュリティ保護のため、この UNIX ドメインソケットは、root でのみアクセス可能なディレクトリになければなりません。 この新しいオプションを設定すると、デーモン管理のための制御ソケットが作成されます。このオプションでは、名前付きソケットを使用して、外部プログラムから動作中の sendmail デーモンのステータスを制御したり照会したりすることを可能にします。このソケットは、INN ニュースサーバーへの ctlinnd インタフェースに類似しています。このオプションを設定しない場合、制御ソケットは一切利用できません。 |
DaemonPortOptions |
詳細は、DaemonPortOptions オプションにおける変更点を参照してください。 |
DataFileBufferSize |
m4 名: confDF_BUFFER_SIZE 引数: number この新しいオプションは、ディスクベースのファイルが使用される前の、メモリーバッファデータ (df) ファイルの最大サイズ (単位: バイト) を制御します。デフォルトは 4096 バイトです。Solaris オペレーティング環境では、変更の必要はありません。 |
DeadLetterDrop |
m4 名: confDEAD_LETTER_DROP 引数: filename この新しいオプションは、システム全体に渡る dead.letter ファイルのロケーションを定義します。以前は /usr/tmp/dead.letter にハードコード化されていました。このオプションを設定する必要はありません。 |
DontBlameSendmail |
NonRootSafeAddr と呼ばれる新しい引数が追加されました。 .forward プログラムを実行したり、ファイルの所有者としてそのファイルへ配信するのに十分な特権が sendmail にない場合、アドレスは安全でない (unsafe) とマーク付けされます。さらに、RunAsUser が設定されている場合には、ユーザーは .forward プログラム内のプログラムを使用したり、ファイルへ配信したりすることができません。これらの問題を解決するために、新しい引数 NonRootSafeAddr を使用します。 |
DontProbeInterfaces |
m4 名: confDONT_PROBE_INTERFACES 引数: true または false。デフォルトは false。 このオプションを true に設定すると、sendmail は、すべてのローカルインタフェースの名前およびアドレスをクラス w ($=w) に挿入しません。したがって、これらのアドレスのサポートを同時に含める必要があります (たとえば、mailertable エントリに)。そうしないと、これらのインタフェースアドレスへのメールは構成エラーで戻されます。ただし、このオプションを設定すると、起動が速くなります。 |
LDAPDefaultSpec |
m4 名: confLDAP_DEFAULT_SPEC 引数: 適切な定義を持つクラススイッチ (たとえば、-hhost、-pport、-dbind DN)。 この新しいオプションでは、LDAP マップのデフォルトのマップ指定が可能になります。K コマンドで個々のマップ指定を別途指定しない限り、指定したデフォルトの設定がすべての LDAP マップに使用されます。このオプションは、LDAP マップを定義する前に設定します。 |
MaxAliasRecursion |
m4 名: confMAX_ALIAS_RECURSION 引数: number このオプションは、別名回帰の最大の深さを指定します。デフォルトは次の通りです。 V1/Sun 構成ファイル (この構成ファイルの使用は推奨されません) の場合は、50。 その他のバージョンの構成ファイルの場合は、10。 |
MaxHeadersLength |
m4 名: confMAX_HEADERS_LENGTH 引数: number このオプションは、すべてのヘッダーを合計した長さの最大値を指定し、「サービス拒否」攻撃の防止に使用できます。デフォルトは 32768 です。16384 より小さい値を使用すると、警告が出されます。通常、Solaris オペレーティング環境では、デフォルト値を変更する必要はありません。 |
MaxMimeHeaderLength |
m4 名: confMAX_MIME_HEADER_LENGTH 引数: number このオプションは、特定の MIME ヘッダーフィールド値の最大長として文字数 x を設定します。さらに、これらのヘッダー内のパラメータに対し最大長 y を指定できます。これらは x/y のように組み合わせて使用します。/y を指定しない場合は、x の半分の値が使用されます。値を何も指定しない場合は、デフォルト値は 0 で、チェックが行われないことを表わします。このオプションは、メールユーザーエージェントを「バッファオーバーフロー」攻撃から防御するために意図されたものです。推奨値は 256/128 から 1024/256 です。128/40 より小さい値を使用すると、警告が出されます。 |
MaxRecipientsPerMessage |
引数: number このオプションでは、1 つの SMTP 封筒内の受信数が指定した数以下となります。引数の最小値は 100 です。このオプションは今までどおりコマンド行からでも、構成ファイルからでも宣言できます。ただし、一般ユーザーは、コマンド行からこのオプションを設定することにより、sendmail -bs で送信されたメッセージをオーバーライドできるようになりました。この場合は、sendmail は root 特権を放棄しません。 |
PidFile |
m4 名: confPID_file 引数: PidFile と ProcessTitlePrefix オプションの追加の引数を参照してください。 この新しいオプションは、pid ファイルのロケーションを定義します。ファイル名は、開かれる前にマクロ展開されます。デフォルトは /var/run/sendmail.pid です。 |
PrivacyOptions |
詳細は、PrivacyOptions オプションにおける変更点 を参照してください。 |
ProcessTitlePrefix |
m4 名: confPROCESS_TITLE_PREFIX 引数: 詳細は、PidFile と ProcessTitlePrefix オプションの追加の引数を参照してください。 この新しいオプションは、/usr/ucb/ps auxww のリストに表示されるプロセスタイトルの接尾辞文字列を指定します。この文字列はマクロ処理されます。Solaris オペレーティング環境では、変更は必要ありません。 |
QueueLA |
m4 名: confQUEUE_LA 引数: number デフォルト値が、8 から、システム起動時のオンラインプロセッサー数 × 8 に変更されました。プロセッサが 1 つだけのマシンの場合には、この変更の影響はありません。この値を変更すると、デフォルト値がオーバーライドされ、プロセッサ数が考慮されなくなります。したがって、値を変更する場合は、その影響を十分に考慮する必要があります。 |
QueueSortOrder |
m4 名: confQUEUE_SORT_ORDER host 引数を指定すると、ソートの前にホスト名を前後逆に入れ替えるようになりました。これによってドメインでソートされるため、待ち行列が一括して実行されます。この改善により、接続キャッシュの使用機会が増えます (接続キャッシュがある場合)。 新しい filename 引数では、待ち行列がファイル名でソートされます。これによって、待ち行列の実行を準備する際に、各待ち行列ファイルを開いて読み取る必要がなくなります。 |
RefuseLA |
m4 名: confREFUSE_LA 引数: number デフォルト値が、12 から、システム起動時のオンラインプロセッサー数 × 12 に変更されました。プロセッサが 1 つだけのマシンの場合には、この変更の影響ありません。この値を変更すると、デフォルト値がオーバーライドされ、プロセッサ数が考慮されなくなります。したがって、値を変更する場合は、その影響を十分に考慮する必要があります。 |
RrtImpliesDsn |
m4 名: confRRT_IMPLIES_DSN 引数: true または false この新しいオプションを設定すると、Return-Receipt-To: ヘッダーによって、配信ステータス通知 (DSN: Delivery Status Notification) の要求が生成されます。この要求は、ヘッダーに指定されているアドレスではなく、封筒の送信側に送られます。 |
SendMimeErrors |
m4 名: confMIME_FORMAT_ERRORS 引数: true または false デフォルトは true になりました。 |
Timeout |
詳細は、Timeout オプションにおける変更点を参照してください。 |
TrustedUser |
m4 名: confTRUSTED_USER 引数: user name または user numeric ID この新しいオプションでは、root ではなくユーザー名を指定して重要なファイルを所有することが可能になります。このオプションを設定すると、生成された別名のデータベースおよび制御ソケット (構成されている場合) は自動的にそのユーザーが所有者となります。このオプションには HASFCHOWN が必要です。HASFCHOWN の詳細は、sendmail の新しいコンパイルフラグを参照してください。 別名マップを再構築できるのは、TrustedUser ユーザー、root、クラス t ($=t) ユーザーに限られます。 |
XscriptFileBufferSize |
m4 名: confXF_BUFFER_SIZE 引数: number この新しいオプションは、ディスクベースのファイルが使用される前のメモリバッファトランスクリプト (xf) ファイルの最大サイズ (単位: バイト) を制御します。デフォルトは 4096 バイトです。Solaris オペレーティング環境では、変更の必要はありません。 |
次の表では、廃止された sendmail の構成ファイルオプションについて記述します。
表 21–3 廃止された sendmail の構成ファイルオプション
オプション |
説明 |
---|---|
AutoRebuildAliases |
このオプションを設定すると「サービス拒否」攻撃が可能になるため、このオプションは廃止されました。ftp://ftp.sendmail.org から入手できる sendmail 配布の一部である『RELEASE NOTES』を参照してください。以前は、このオプションを設定することで別名ファイルを再構築している間に (そのファイルがまだ不安定な状態で)、sendmail プロセスを kill することができました。 |
MeToo |
このオプションは、現在デフォルトで True になっており、廃止されました。ftp://ftp.sendmail.org から入手できる sendmail 配布の一部である『RELEASE NOTES』を参照してください。 |
新しい ClientPortOptions オプションは、発信接続用で、DaemonPortOptions オプションに類似しています。このオプションは、一連の key=value ペアからなるクライアント SMTP オプションを設定します。このオプションを宣言するには、次のいずれかの構文を使用します。この例には構文を示すために 2 つのペアが示されていますが、実際には 1 つまたは複数のペアを指定することができます。
O ClientPortOptions=pair,pair # 構成ファイル用 -OClientPortOptions=pair,pair # コマンド行用 define(`confCLIENT_OPTIONS',`pair,pair') # m4 構成用 |
次の表では、このオプションの新しいキーを示します。
表 21–4 ClientPortOptions の新しいキー
キー |
説明 |
---|---|
Addr |
アドレスマスクを指定します。この値は、ドット表記の数値アドレス、またはネットワーク名を指定できます。ペアを省略すると、デフォルトは INADDR_ANY になり、どのネットワークからの接続も許可されます。 |
Family |
アドレスファミリを指定します。このキーのデフォルト値は AF_INET の inet です。その他の値には、AF_INET6 用の inet6、AF_ISO 用の iso、AF_NS 用の ns、AF_CCITT 用の x.25 があります。 |
Listen |
待機待ち行列のサイズを指定します。このキーのデフォルトは 10 です。Solaris オペレーティング環境では、変更の必要はありません。 |
Port |
待機ポートの名前と数を指定します。このキーのデフォルト値は smtp です。 |
RcvBufSize |
TCP/IP 送信バッファのサイズを指定します。このキーにはデフォルト値はなく、サイズが自動的に指定されることはありません。オプションでゼロより大きい値を設定すると、その値が使用されます。Solaris オペレーティング環境では、このバッファのサイズを制限する必要はありません。 |
Modifier |
sendmail のフラグを指定します。フラグ h は、接続パラメータで選択されたかデフォルトで選択されたかにかかわらず、HELO または EHLO コマンドに、発信インタフェースアドレスに対応する名前を使用します。 |
下記に示す 2 つの表は、このオプションの 2 つの新しいキー、および新しいキーの 1 つである Modifier キーのいくつかの特定の値を示したものです。このオプションを宣言するには、次のいずれかの構文を使用します。この例では、pair は key=value を表しています。この例では構文を示すために 2 つのペアが示されていますが、実際には 1 つまたは複数のペアを指定することができます。
O DaemonPortOptions=pair,pair # 構成ファイル用 -ODaemonPortOptions=pair,pair # コマンド行用 define(`confDAEMON_OPTIONS',`pair,pair') # m4 構成用 |
セキュリティ上のリスクを避けるため、コマンド行からこのオプションを設定すると、sendmail は root アクセス権を放棄します。
次の表では、DaemonPortOptions オプションの 2 つの新しいキーを示します。
表 21–5 DaemonPortOptions の新しいキー
キー |
説明 |
---|---|
Name |
sendmail に対するユーザー定義可能な名前を指定します。この名前は、エラーメッセージやロギングに使用されます。デフォルトは MTA です。 |
Modifier |
sendmail に対する値を指定します。値は、区切り文字で区切らずに連続してリストすることができます。指定可能な値は、表 21–6 を参照してください。 |
次の表では、新しい Modifier キーの値を示します。
表 21–6 DaemonPortOptions の Modifier キーの値
値 |
説明 |
---|---|
C |
ホスト名の正規化を行いません。 |
E |
ETRN コマンドを許可しません。 |
a |
認証を要求します。 |
b |
このメールを受け取るインタフェースにバインドします。 |
c |
ホスト名の正規化を行います。この値は、構成ファイルでの宣言でのみ使用します。 |
f |
完全指定であるホスト名を要求します。この値は、構成ファイルでの宣言でのみ使用します。 |
h |
発信 HELO コマンドにインタフェースの名前を使用します。 |
u |
完全指定でないアドレスを許可します。この値は、構成ファイルでの宣言でのみ使用します。 |
次の表では、PidFile と ProcessTitlePrefix オプションの、追加のマクロ処理引数を示します。これらのオプションの詳細は、表 21–2 を参照してください。
表 21–7 PidFile と ProcessTitlePrefix オプションの引数
マクロ |
説明 |
---|---|
${daemon_addr} |
デーモンアドレスを指定します (たとえば、0.0.0.0) |
${daemon_family} |
デーモンファミリを指定します (たとえば、inet、inet6 など) |
${daemon_info} |
デーモン情報を指定します (たとえば、SMTP+queueing@00:30:00) |
${daemon_name} |
デーモン名を指定します (たとえば、MSA) |
${daemon_port} |
デーモンポートを指定します (たとえば、25) |
${queue_interval} |
待ち行列の実行間隔を指定します (たとえば、00:30:00) |
下記の表では、PrivacyOptions (popt) の新しい引数と更新された引数を示します。このオプションは、sendmail が root 特権を放棄することなく、コマンド行から宣言することができます。この sendmail オプションを宣言するには、次のいずれかの構文を使用します。
O PrivacyOptions=argument # 構成ファイル用 -OPrivacyOptions=argument # コマンド行用 define(`confPRIVACY_FLAGS',`argument') # m4 構成用 |
次の表では、PrivacyOptions オプションの新しい引数と更新された引数を示します。
表 21–8 PrivacyOptions の新しい引数と更新された引数
引数 |
説明 |
---|---|
goaway |
noetrn フラグと noreceipts フラグは許可されなくなりました。 |
nobodyreturn |
この引数は、オリジナルのメッセージの本文を配信ステータス通知に含まないことを sendmail に知らせます。 |
noreceipts |
この引数を設定すると、配信ステータス通知 (DSN: Delivery Status Notification) が発行されません。 |
次の表では、Timeout オプションにおける変更点についての情報を示します。特に、この sendmail オプションには、いくつかの新しいキーワードと、ident の新しい値が追加されています。Solaris オペレーティング環境では、この表に示されているキーワードのデフォルトの値を変更する必要はありません。しかし、変更を行う場合には、keyword=value 構文を使用します。value は時間の間隔です。次の例を参照してください。
O Timeout.keyword=value # 構成ファイル用 -OTimeout.keyword=value # コマンド行用 define(`m4_name', value) # m4 構成用 |
セキュリティ上のリスクを避けるため、コマンド行からこのオプションを設定すると、sendmail は root アクセス権を放棄します。
キーワード |
デフォルト値 |
説明 |
---|---|---|
control |
2m |
m4 名: confTO_CONTROL 制御ソケット要求を満たすためだけに使用される時間の合計を制限します。 |
ident |
5s |
m4 名: confTO_IDENT IDENT パケットをドロップするサイトへのメーリングに関連する一般的な遅延を防ぐため、デフォルトは 30 秒ではなく、5 秒になっています。 |
queuereturn |
5d |
m4 名: confTO_QUEUERETURN 値 now を含めると、エントリは、配信を試行することなく、待ち行列からただちに返されます。 |
resolver.retrans |
varies |
m4 名: confTO_RESOLVER_RETRANS リゾルバの再伝送時間の間隔を秒数で設定します。この値は、resolver.retrans.first と resolver.retrans.normal に適用されます。 |
resolver.retrans.first |
varies |
m4 名: confTO_RESOLVER_RETRANS_FIRST メッセージ配信の最初の試みに対する、リゾルバの再伝送時間の間隔を秒数で設定します。 |
resolver.retrans.normal |
varies |
m4 名: confTO_RESOLVER_RETRANS_NORMAL 最初の配信の試みを除くすべてのリゾルバのルックアップに対する、リゾルバの再伝送時間の間隔を秒数で設定します。 |
resolver.retry |
varies |
m4 名: confTO_RESOLVER_RETRY リゾルバの照会を再伝送する回数を設定します。この値は Timeout.resolver.retry.first と Timeout.resolver.retry.normal に適用されます。 |
resolver.retry.first |
varies |
m4 名: confTO_RESOLVER_RETRY_FIRST メッセージ配信の最初の試みに対する、リゾルバの照会を再伝送する回数を設定します。 |
resolver.retry.normal |
varies |
m4 名: confTO_RESOLVER_RETRY_NORMAL 最初の配信の試みを除くすべてのリゾルバのルックアップに対する、リゾルバの照会を再伝送する回数を設定します。 |
次の表では、sendmail プログラムでの使用のために予約されている新しいマクロを示します。これらの値は内部的に割り当てられます。
表 21–10 新たに定義された sendmail のマクロ
マクロ |
説明 |
---|---|
${auth_authen}, ${auth_type}, ${auth_author} |
クライアントの認証資格 (認証に使用される機構) と承認 ID (AUTH=パラメータ。指定されている場合) を保持します。 |
${client_resolve} |
${client_name} に対する resolve 呼び出しの結果 (OK、FAIL、FORGED、または TEMP) を保持します。 |
${deliveryMode} |
sendmail が使用している現在の配信モードを指定します (DeliveryMode オプションの代わりです)。 |
${dsn_notify}, ${dsn_envid}, ${dsn_ret} |
対応する DSN パラメータの値を保持します。 |
${if_addr} |
インターネットがループバックネットに属さない場合、着信接続にインタフェースのアドレスを指定します。これは仮想ホスティングに特に便利です。 |
${if_name} |
着信接続にインタフェースのホスト名を指定します。これは仮想ホスティングに特に便利です。 |
${load_avg} |
実行待ち行列にあるジョブの現在の平均数をチェックし、報告します。 |
${msg_size} |
メッセージが収集される前の、ESMTP ダイアログにおけるメッセージサイズの値 (SIZE=parameter) を保持します。その後、マクロは sendmail によって計算されたメッセージサイズを保持し、これは check_compat で使用されます。 |
${ntries} |
配信を試みる回数を保持します。 |
${rcpt_mailer}, ${rcpt_host}, ${rcpt_addr}, ${mail_mailer}, ${mail_host}, ${mail_addr} |
RCPT 引数と MAIL 引数を解析した結果、つまり、メール配信エージェント ($#mailer)、ホスト ($@host)、ユーザー ($:addr) の 3 つからなる解決済みの RHS を保持します。 |
次の表では、sendmail 構成ファイルの構築に使用される新しいマクロを示します。
表 21–11 sendmail 構成ファイルの構築に使用される新しいマクロ
フラグ |
説明 |
---|---|
LOCAL_MAILER_EOL |
ローカルメールプログラムのデフォルトの行末の文字列をオーバーライドします。 |
LOCAL_MAILER_FLAGS |
デフォルトで Return-Path: ヘッダーを追加します。 |
MAIL_SETTINGS_DIR |
メール設定ディレクトリへのパス (後続のスラッシュを含む) を保持します。 |
MODIFY_MAILER_FLAGS |
*_MAILER_FLAGS を改善します。このマクロはフラグを設定、追加、または削除します。 |
RELAY_MAILER_FLAGS |
中継メールプログラムの追加フラグを定義します。 |
USENET_MAILER_FLAGS |
ローカルメールプログラムではないため、l フラグは削除されました。 |
この節では、sendmail の新規および更新された m4 構成マクロと、次の関連事項を記述します。
これ以降の表に示すマクロの宣言には次の構文を使用します。
symbolic_name(`value') |
m4 マクロ |
説明 |
---|---|
FEATURE() 宣言 |
詳細は、新規および更新された FEATURE() 宣言を参照してください。 |
LOCAL_DOMAIN() |
このマクロはクラス w ($=w) にエントリを追加します。 |
MASQUERADE_EXCEPTION() |
偽装できないホストまたはサブドメインを定義する新しいマクロ。 |
SMART_HOST() |
user@[host]などの、括弧付きのアドレスにこのマクロを使用できるようになりました。 |
TRUST_AUTH_MECH() |
SMTP AUTH が使用されている場合、「信頼される」機構として認証されているすべてのユーザーに対し、中継が許可されます。これは、この機構が TRUST_AUTH_MECH('list_of_mechanisms') 宣言で定義されていることを意味します。 |
VIRTUSER_DOMAIN() または VIRTUSER_DOMAIN_FILE() |
これらのマクロを使用する場合は、$={VirtHost} を $=R に含めます。$=R は、中継を許可されているホスト名のセットです。 |
次の表では、m4 FEATURE() 宣言の新規のキーワードと更新されたキーワードを示します。.mc ファイルに feature を宣言するには、次の例に示す構文を使用します。
FEATURE(`key_word', `argument') |
次の表では、どのキーワードに arguments が必要であるかを示します。
表 21–13 FEATURE() 宣言の新規および更新されたキーワード
キーワード |
説明 |
---|---|
delay_checks |
引数: friend (spam-friend テストを有効にする)、または hater (spam-hater テストを有効にする) すべてのチェックを遅らせる新しいキーワード。FEATURE(‘delay_checks’) を使用すると、クライアントが接続したり MAIL コマンドを発行した時にルールセット check_mail や check_relay は呼び出されません。その代わりに、これらのルールセットは check_rcpt ルールセットから呼び出されます。詳細は、/usr/lib/mail/README ファイルを参照してください。 |
dnsbl |
DNS サーバー名 拒否メッセージ このキーワードは、複数回含めることができます。 |
generics_entire_domain |
引数: なし genericstable を $=G のサブドメインに適用するために使用することもできる新しいキーワード。 |
ldap_routing |
引数: 詳細は、/usr/lib/mail/README の LDAP ROUTING の節を参照してください。 LDAP アドレスルーティングを実装する新しいキーワード。 |
local_lmtp |
引数: LMTP 対応メールプログラムのパス名。デフォルトは mail.local で、これは Solaris のリリースでは LMTP 対応です。 ローカルメールプログラムの配信ステータス通知 (DSN) 診断コードタイプを SMTP の適切な値に設定するキーワード。 |
nocanonify |
引数: canonify_hosts または、なし このキーワードには、次の機能が含まれるようになりました。 CANONIFY_DOMAIN または CANONIFY_DOMAIN_FILE によって指定されたドメインのリストを $[ および $] 演算子に渡し、正規化を依頼することができます。 <user@host> のような 1 つのホスト名だけを持つアドレスの正規化を依頼できる。ただし、そのパラメータとして canonify_hosts が指定されている場合に限ります。 複数のコンポーネントからなるアドレスに後続のドットを付加します。 |
no_default_msa |
引数: なし m4 によって生成された構成ファイルにある sendmail のデフォルト設定をオフにして、いくつかの別のポートで待機する、新しいキーワード。RFC 2476 の実装です。 |
nouucp |
引数: reject (! トークンを許可しない) または nospecial (! トークンを許可する)。 アドレスのローカル部分に ! トークンを許可するかどうかを指定するキーワード |
nullclient |
引数: なし 通常構成のすべてのルールセットを提供するキーワード。これにより、anti-spam チェックを行うことができます。 |
relay_mail_from |
引数: domain (オプションの引数) メール送信側がアクセスマップに RELAY としてリストされており、From: ヘッダー行が付加されている場合、中継を許可する、新しいキーワード。オプションの domain 引数が指定されている場合は、メール送信側のドメイン部分もチェックされます。 |
virtuser_entire_domain |
引数: なし VIRTUSER_DOMAIN または VIRTUSER_DOMAIN_FILE によって移植できる virtusertable エントリのマッチングのための新しいクラス $={VirtHost} を適用するために使用できるようになったキーワード。 FEATURE(`virtuser_entire_domain') では、クラス $={VirtHost} をサブドメイン全体に適用することもできます。 |
MAILER() 宣言は、配信エージェントのサポートを指定します。配信エージェントを宣言するには、次の構文を使用します。
MAILER(`symbolic_name') |
sendmail のこの新しいバージョンでは、MAILER(‘smtp’) 宣言に追加のメールプログラム、dsmtp を含むようになりました。dsmtp は、F=% メールプログラムフラグを使用することによって要求に応じて配信を行います。dsmtp メールプログラム定義では、新しい DSMTP_MAILER_ARGS が使用されます。このデフォルトは IPC $h です。
次の表では、sendmail のコンパイルに使用される新しいフラグを示します。構成により他のフラグが必要な場合は、ユーザーがそのソースをダウンロードし、バイナリを再コンパイルする必要があります。このプロセスについては、http://www.sendmail.org を参照してください。
表 21–14 sendmail のコンパイルに使用される新しいフラグ
フラグ |
説明 |
---|---|
HASFCHOWN |
fchown(2) の使用をサポートします。 |
HASRANDOM |
rand(3C) の使用をサポートします (random(3C) ではなく)。 |
MAXINTERFACES |
sendmail がクラス w ($=w) のホスト名と IP アドレスを検索するときに読み取るインタフェースの数を指定します。デフォルト値は 512 です。 |
次の表は、新しい配信エージェントフラグについて記述したものです。デフォルトでは、これらのフラグは設定されていません。これらの単一文字フラグはブール値です。フラグの設定や設定解除は、構成ファイルの F=statement にフラグを含めるか、含めないかで決まります。次はその例です。
Mlocal, P=/usr/lib/mail.local, F=lsDFMAw5:/|@qSXfmnz9, S=10/30, R=20/40, Mprog, P=/bin/sh, F=lsDFMoqeu9, S=10/30, R=20/40, D=$z:/, Msmtp, P=[IPC], F=mDFMuX, S=11/31, R=21, E=\r\n, L=990, Mesmtp, P=[IPC], F=mDFMuXa, S=11/31, R=21, E=\r\n, L=990, Msmtp8, P=[IPC], F=mDFMuX8, S=11/31, R=21, E=\r\n, L=990, Mrelay, P=[IPC], F=mDFMuXa8, S=11/31, R=61, E=\r\n, L=2040, |
フラグ |
説明 |
---|---|
% |
このフラグを使用するメールプログラムは、待ち行列のメッセージが ETRN 要求か、待ち行列オプション -qI、-qR、-qS のどれかで選択されない限り、メッセージの最初の受信人や、待ち行列実行にメッセージを配信しません。 |
6 |
このフラグにより、メールプログラムは、ヘッダーを 7 ビットでカットします。 |
下記の表では、M 配信エージェント定義コマンドで使用できる新しい等式を示します。次の構文は、構成ファイルにすでに存在する等式や引数に新しい等式や引数を付加する方法を示しています。
Magent_name, equate, equate, ... |
次の例は、新しい W= の等式を含んでおり、すべてのデータの送信後にメールプログラムが戻るまでに待つ最大の時間を指定しています。
Msmtp, P=[IPC], F=mDFMuX, S=11/31, R=21, E=\r\n, L=990, W=2m |
m4 構成に対する値の定義を変更するには、次の例に示す構文を使用します。
define(`SMTP_MAILER_MAXMSGS', `1000') |
通常、mailer ディレクトリの等式の定義を変更するのは、細かい調整が必要なときだけです。
複数の待ち行列ディレクトリがサポートされるようになりました。複数の待ち行列を使用するには、構成ファイルに QueueDirectory オプションの値を指定し、次の例に示すようにその終りにアスタリスク (*) を付加します。
O QueueDirectory=/var/spool/mqueue/q* |
このオプション値 /var/spool/mqueue/q* は、待ち行列ディレクトリとして q で始まるすべてのディレクトリ (またはディレクトリへのシンボリックリンク) を使用することを示しています。sendmail が動作している間に待ち行列ディレクトリ構造を変更しないでください。待ち行列実行は、冗長フラグ (-v) が非デーモン待ち行列実行に使用されていない限り、各待ち行列を実行する別個のプロセスを作成します。新しい項目は、待ち行列にランダムに割り当てられます。
新しい待ち行列ファイル命名システムでは、60 年間必ず一意になるファイル名が使用されます。このシステムでは、複雑なファイルシステムロックを行わずに待ち行列 ID を割り当てることができるだけでなく、待ち行列化された項目を待ち行列間で簡単に移動できます。
以下では、sendmail における Lightweight Directory Access Protocol (LDAP) の使い方の変更点を記述します。
ftp://ftp.sendmail.org から入手できる sendmail 配布の一部である『RELEASE NOTES』に記述されているように、LDAPX マップの名前が LDAP に変更されました。LDAP には次の構文を使用します。
Kldap ldap options |
単一の LDAP ルックアップからの複数の値の返りをサポートするようになりました。それには、-v オプションで、次に示すように返される値をコンマで区切った文字列として指定します。
Kldap ldap -v"mail,more_mail" |
LDAP マップ宣言に LDAP 属性が指定されていない場合、一致したものの中に存在するすべての属性が返されます。
このバージョンでは、引用符でくくったキーの中のコンマや、LDAP の別名ファイル指定の中の値文字列によって、単一のエントリが複数のエントリに分割されることはありません。
%s トークンを使って LDAP のフィルタ指定を解析する代わりに、新しいトークン %0 を使ってキーバッファを符号化することができます。%0 トークンは、LDAP の特殊文字に文字そのものの意味を割り当てます。
次の例では、“*” を使ったルックアップでこれらのトークンがどのように異なるかを示します。
表 21–17 トークンの比較
LDAP マップ指定 |
同等な指定 |
結果 |
---|---|---|
-k"uid=%s" |
-k"uid=*" |
ユーザー属性を持つすべてのレコードと一致する。 |
-k"uid=%0" |
-k"uid=\2A" |
名前として“*” を持つユーザーと一致する。 |
次の表では、新しい LDAP マップのフラグを示します。
表 21–18 新しい LDAP マップフラグ
フラグ |
説明 |
---|---|
-1 |
単一の一致を返す必要がある。複数の一致が返された場合、結果は、レコードが 1 つも見つからなかったのと同じことになる。 |
-r never|always|search|find |
LDAP 別名展開オプションを設定する。 |
-Z size |
返す一致の数を制限する。 |
古い [TCP] 組み込み型のメールプログラムは廃止されました。その代わりに P=[IPC] (プロセッサ間通信) 組み込み型のメールプログラムを使用します。[IPC] 組み込み型のメールプログラムでは、システム上の UNIX ドメインソケットへの配信が可能です。ただし、そのシステムは UNIX ドメインソケットをサポートしていなければなりません。このメールプログラムは、指定されたソケットで待機する LMTP 配信エージェントとともに使用できます。次はメールプログラムの例です。
Mexecmail, P=[IPC], F=lsDFMmnqSXzA5@/:|, E=\r\n, S=10, R=20/40, T=DNS/RFC822/X-Unix, A=FILE /var/run/lmtpd |
[IPC] メールプログラムの最初のメールプログラム引数は、値が有効かどうかをチェックします。次の表では、最初のメールプログラム引数として指定できる値を示します。
表 21–19 最初のメールプログラム引数として指定できる値
値 |
説明 |
---|---|
A=FILE |
UNIX ドメインソケットへの配信に使用される。 |
A=TCP |
TCP/IP 接続に使用される。 |
A=IPC |
将来のバージョンでは廃止される予定。 |
次の表では、新しいルールセットとその実行する動作を記述します。
表 21–20 新しいルールセット
セット |
説明 |
---|---|
check_eoh |
収集された情報をヘッダー間で関連比較し、足りないヘッダーがないかチェックする。このルールセットはマクロストレージマップとともに使用され、すべてのヘッダーが収集された後で呼び出される。 |
check_etrn |
ETRN コマンドを使用する (check_rcpt が RCPT を使用する場合など)。 |
check_expn |
EXPN コマンドを使用する (check_rcpt が RCPT を使用する場合など)。 |
check_vrfy |
VRFY コマンドを使用する (check_rcpt が RCPT を使用する場合など)。 |
trust_auth |
MAIL コマンドの指定された AUTH= パラメータが信頼すべきものかどうかを判定する。 |
次の各項では、新しいルールセット機能について述べます。
番号付きルールセットには名前も付けられますが、番号でアクセスすることができます。
H ヘッダー構成ファイルコマンドでは、ヘッダーチェックにデフォルトのルールセットを指定できます。このルールセットは、個々のヘッダーに独自のルールセットが割り当てられていない場合だけ呼び出されます。
構成ファイルバージョンが 9 以上の場合、ルールセット内のコメント (つまり、括弧内のテキスト) は削除されません。たとえば、次のルールは token (1) という入力には一致しますが、token という入力には一致しません。
R$+ (1) $@ 1 |
sendmail は、TCP ラッパーや check_relay ルールセットに基づいてコマンドを拒否する場合でも、SMTP RSET コマンドは受け付けます。
OperatorChars オプションを複数回設定すると、警告が出されます。ルールセットを定義した後で OperatorCharsを設定しないでください。
有効でないルールセットを宣言すると、ルールセットの名前およびその行は無視されます。そのルールセットの行は S0 に追加されません。
次のファイルのロケーションが変更されていますので注意してください。
helpfile は /etc/mail/helpfile に移されました。古い名前 (/etc/mail/sendmail.hf) には、新しい名前へのシンボリックリンクが指定されています。
trusted-users ファイルは /etc/mail/trusted-users に移されました。アップグレードの際に古い名前 (/etc/mail/sendmail.ct) が検出され、新しい名前が検出されない場合、古い名前から新しい名前へのハードリンクが作成されます。新しい名前が検出された場合は、何も行われません。デフォルトの内容は root です。
local-host-names ファイルは /etc/mail/local-host-names に移されました。アップグレードの際に古い名前 (/etc/mail/sendmail.cw) が検出され、新しい名前が検出されない場合、古い名前から新しい名前へのハードリンクが作成されます。新しい名前が検出された場合は、何も行われません。デフォルトの内容は長さがゼロです。