Go to main content
Oracle® Solaris 11.3 での sendmail サービスの管理

印刷ビューの終了

更新: 2016 年 11 月
 
 

sendmail の version 8.12

このセクションでは、次のトピックについて説明します。

sendmail の version 8.12 からの TCP ラッパーのサポート

TCP ラッパーは、特定のネットワークサービスを要求するホストのアドレスをアクセス制御リスト (ACL) と突き合わせて検査することによるアクセス制御の実装方法を提供します。要求は、状況に応じて、許可されたり拒否されたりします。このアクセス制御メカニズムを提供する以外に、TCP ラッパーは、ネットワークサービスに対するホストの要求を記録します。これは、有用なモニタリング機能です。アクセス制御のもとに置かれるネットワークサービスの例として、rlogindtelnetdftpd などがあります。

version 8.12 より、sendmail で TCP ラッパーが使用できるようになりました。この検査によってほかのセキュリティー対策が省略されることはありません。sendmail で TCP ラッパーを有効にすることにより、検査が追加され、ネットワーク要求元の妥当性が検証されてから要求が許可されます。hosts_access(4) のマニュアルページを参照してください。


注 -  inetd(1M) および sshd(1M) での TCP ラッパーは、Solaris 9 リリースからサポートされています。

ACL の詳細は、Oracle Solaris 11.3 でのファイルのセキュリティー保護とファイル整合性の検証 の アクセス制御リストによる UFS ファイルの保護を参照してください。

sendmail の version 8.12 からの submit.cf 構成ファイル

version 8.12 から、sendmail に新しい構成ファイル /etc/mail/submit.cf が含まれています。この submit.cf ファイルを使用すると、sendmail をデーモンモードではなく、メール配信プログラムモードで実行できます。デーモンモードとは異なり、メール配信プログラムモードでは root 権限は必要ありません。そのため、この新しいパラダイムを使用すると、セキュリティーが向上します。

    submit.cf の機能については、次を参照してください。

  • sendmail は MSP (メール配信プログラム) モードでは submit.cf を使って実行し、submit.cf は電子メールを送信し、また mailx のようなプログラムとユーザーによって呼び出すことができます。sendmail(1M) のマニュアルページで –Ac オプションおよび –Am オプションの説明を参照してください。

  • submit.cf は、次の操作モードで使用します。

    • –bm デフォルトの操作モード

    • –bs 標準入力を使用して SMTP を実行する

    • –bt アドレスの解決に使用されるテストモード

  • submit.cf を使用している場合には、sendmail は SMTP デーモンとして動作しません。

  • submit.cf を使用している場合には、sendmail はクライアント専用のメールキューである /var/spool/clientmqueue を使用します。このキューには、sendmail デーモンに配信されなかったメッセージが保持されます。クライアント専用キューにあるメッセージは、クライアントの「デーモン」によって配信されます。実際には、このデーモンが、クライアントキューを実行します。

  • デフォルトでは、sendmailsubmit.cf を使用して、定期的に MSP キュー (クライアント専用キュー) である /var/spool/clientmqueue を実行します。

    /usr/lib/sendmail -Ac -q15m

    次の点に注意してください。

  • Solaris 9 より、submit.cf は自動的にインストールされます。

  • Solaris 9 以降をインストールする前に、submit.cf について計画および準備をする必要はありません。

  • 構成ファイルを指定しないかぎり、sendmail は必要に応じて submit.cf を自動的に使用します。基本的に、sendmail は各タスクについて、submit.cfsendmail.cf のどちらを使用するのが適切かを判断します。

sendmail.cfsubmit.cf の機能の相違点

構成ファイル sendmail.cf は、デーモンモードで使用します。このファイルを使用すると、sendmail はメール転送エージェント (MTA) として動作します。sendmail は、root によって起動されます。

/usr/lib/sendmail -L sm-mta -bd -q1h

    次のsendmail.cf 特有のほかの機能のリストを参照してください。

  • デフォルトでは、sendmail.cf は、ポート 25 および 587 で SMTP 接続を受け入れます。

  • デフォルトでは、sendmail.cf がメールキュー /var/spool/mqueue を実行します。

sendmail の version 8.12 からの機能の変更

    submit.cf が追加されたため、次の機能が変更されました。

  • sendmail の version 8.12 より、root だけがメールキューを実行できます。詳細については、mailq(1) のマニュアルページで説明されている変更を参照してください。新しいタスク手順については、キューディレクトリの管理のタスクマップを参照してください。

  • メール配信プログラムモードは、root 権限がなくても実行されるので、sendmail が特定のファイル (.forward ファイルなど) にアクセスできないことがあります。したがって、–sendmailbv オプションを追加すると、ユーザーが誤解するような出力を発生させる可能性があります。回避策はありません。

  • 8.12 より前のバージョンの sendmail では、sendmail をデーモンモードで実行しない場合は、受信メールの配信を防止することしかできませんでした。sendmail version 8.12 より、デフォルトの構成で sendmail デーモンを実行しない場合、送信メールの配信も防止されます。クライアントキューランナー (メール配信プログラム) を設定して、ローカル SMTP ポートのデーモンにメールを送信できるようにする必要があります。クライアントキューランナーが SMTP のセッションをローカルホストで開こうとした場合で、デーモンが SMTP ポートで待機していないときには、メールはキューにとどまります。デフォルトの構成では、デーモンが実行されます。そのため、デフォルト構成を使用する場合には、この問題は発生しません。ただし、デーモンを無効にした場合の解決方法については、 sendmail.cf の代替構成を使ってメール配信を管理する方法を参照してください。

sendmail の version 8.12 から追加されたまたは非推奨のコマンド行オプション

次の表では、sendmail の追加されたコマンド行オプションまたは非推奨のコマンド行オプションについて説明します。コマンド行のほかのオプションについては、sendmail(1M) のマニュアルページを参照してください。

表 11  sendmail の version 8.12 から追加されたまたは非推奨のコマンド行オプション
オプション
説明
–Ac
オペレーションモードが初期メール配信を示していない場合でも、構成ファイル submit.cf を使用することを示します。submit.cf についての詳細は、sendmail の version 8.12 からの submit.cf 構成ファイルを参照してください。
–Am
オペレーションモードが初期メール配信を示している場合でも、構成ファイル sendmail.cf を使用することを示します。詳細は、sendmail の version 8.12 からの submit.cf 構成ファイルを参照してください。
–bP
各キューのエントリ数を出力します。
–G
コマンド行から送信されたメッセージが、初期送信のためでなく、中継のためであることを示します。アドレスが絶対パスではない場合は、メッセージは拒否されます。正規化は実行されません。http://www.sendmail.com/sm/open_source/sendmail とともに配布しているリリースノートで説明しているように、将来のリリースでは、不適切な形式のメッセージが拒否される可能性があります。
–L tag
指定された syslog メッセージに使用する識別子を タグ (tag) に設定します。
– q[!]I substring
受信者にこの部分文字列 (substring) を含むジョブだけを処理します。オプションに ! を追加すると、受信者にこの部分文字列 (substring) を含まないジョブだけを処理します。
– q[!]R substring
キュー ID にこの部分文字列 (substring) を含むジョブだけを処理します。オプションに ! を追加すると、キュー ID にこの部分文字列 (substring) を含まないジョブだけを処理します。
– q[!]S substring
送信者にこの部分文字列 (substring) を含むジョブだけを処理します。オプションに ! を追加すると、送信者にこの部分文字列 (substring) を含まないジョブだけを処理します。
–qf
キューにあるメッセージをシステムコール fork を使用しないで一度処理し、フォアグラウンドでプロセスを実行します。fork(2) のマニュアルページを参照してください。
–qGname
name で指定するキューグループにあるメッセージだけを処理します。
–qptime
各キュー用にフォークされた子プロセスを使用して、キューに保存されているメッセージを指定した間隔で処理します。次にキューが実行されるまでの間、その子プロセスはスリープしています。この新しいオプションは、定期的に子をフォークしてキューを処理する –qtime に似ています。
–U
http://www.sendmail.com/sm/open_source/sendmail とともに配布しているリリースノートで説明されているように、バージョン 8.12 以降このオプションは使用できません。メールユーザーエージェントでは –G 引数を使用するようにしてください。

–sendmail の version 8.12 から –PidFile オプションおよび ProcessTitlePrefix オプションに追加された引数

次の表では、–PidFile オプションおよび –ProcessTitlePrefix オプションにおける追加のマクロ処理引数について説明します。これらのオプションについては、sendmail(1M) のマニュアルページを参照してください。

表 12  PidFile オプションおよび ProcessTitlePrefix オプションの引数
マクロ
説明
${daemon_addr}
0.0.0.0 などのデーモンアドレスを提供します。
${daemon_family}
inetinet6 などのデーモンファミリーを提供します。
${daemon_info}
SMTP+queueing@00: 30:00 などのデーモン情報を提供します。
${daemon_name}
MSA などのデーモン名を提供します。
${daemon_port}
25 などのデーモンポートを提供します。
${queue_interval}
キューを実行する間隔を提供します (00:30:00 など)。

sendmail の version 8.12 から追加定義されたマクロ

次の表では、sendmail プログラムで使用するために予約されている追加マクロについて説明しています。マクロの値は、内部で割り当てられています。詳細は、sendmail(1M) のマニュアルページを参照してください。

表 13  sendmail に追加定義されたマクロ
マクロ
説明
${addr_type}
現在のアドレスを、エンベロープの送信側または受信者アドレスと認定します。
${client_resolve}
${client_name} に対する解決呼び出しの結果、つまり OKFAILFORGED、または TEMP を保持します。
${deliveryMode}
DeliveryMode オプションの値ではなく、–sendmail が使用している現在のデリバリモードを指定します。
${dsn_notify}, ${dsn_envid}, ${dsn_ret}
対応する DSN パラメータ値を保持します。
${if_addr}
インタフェースがループバックネット上にない場合に、受信接続用インタフェースのアドレスを提供します。このマクロは、特に仮想ホスティングに便利です。
${if_addr_out}, ${if_name_out}, ${if_family_out}
${if_addr} の再利用を避けます。次の値を、それぞれ保持します。
送信接続用インタフェースのアドレス
送信接続用インタフェースのホスト名
送信接続用インタフェースのファミリ
${if_name}
受信接続用のインタフェースのホスト名を提供します。これは、特に仮想ホスティングに便利です。
${load_avg}
実行キューにあるジョブの現在の平均数を確認して報告します。
${msg_size}
ESMTP ダイアログにあるメッセージサイズの値 (SIZE=parameter) を保持してから、メッセージを収集します。その後、sendmail によって計算されたメッセージサイズを保持したマクロを check_compat で使用します。check_compat の詳細は、表 17を参照してください。
${nrcpts}
妥当性検証を行なった受信者の数を保持します。
${ntries}
配信を試みた回数を保持します。
${rcpt_mailer}, ${rcpt_host}, ${rcpt_addr}, ${mail_mailer}, ${mail_host}, ${mail_addr}
引数 RCPT および MAIL の解析結果、つまりメール配信エージェント ($#mailer)、ホスト ($@host)、およびユーザー ($:addr) から解釈処理された RHS (Right-Hand Side) トリプレットを保持します。

sendmail の version 8.12 から追加されたマクロ

このセクションでは、構成ファイル sendmail を構築するのに使用する追加マクロについて説明した表を示します。

表 14  構成ファイル sendmail を構築するのに使用する追加マクロ
マクロ
説明
LOCAL_MAILER_EOL
ローカルメールプログラムの行末を示すデフォルト文字列をオーバーライドします。
LOCAL_MAILER_FLAGS
デフォルトで Return-Path: ヘッダーを追加します。
MAIL_SETTINGS_DIR
メール設定ディレクトリのパスを格納します (末尾のスラッシュを含む)。
MODIFY_MAILER_FLAGS
*_MAILER_FLAGS を拡張します。このマクロは、フラグを設定、追加、または削除します。
RELAY_MAILER_FLAGS
中継メールプログラムの追加フラグを定義します。

sendmail の version 8.12 から追加された MAX マクロ

次のマクロを使用して、sendmail による配信の遅れが発生するまでに受け入れ可能なコマンドの最大数を構成します。これらの MAX マクロは、コンパイル時に設定できます。次の表にある最大値は、現在のデフォルト値でもあります。

表 15  追加された MAX マクロ
マクロ
最大値
各マクロが検査するコマンド
MAXBADCOMMANDS
25
未知のコマンド
MAXNOOPCOMMANDS
20
NOOPVERBONEXXUSR
MAXHELOCOMMANDS
3
HELOEHLO
MAXVRFYCOMMANDS
6
VRFYEXPN
MAXETRNCOMMANDS
8
ETRN

注 -  マクロによる確認を無効にするには、マクロの値を 0 に設定します。

sendmail の version 8.12 から追加または改訂された m4 構成マクロ

このセクションでは、sendmail において追加または改訂された m4 構成マクロの表を示します。これらのマクロを宣言するには、次の構文を使用します。

symbolic-name(`value')

新しい sendmail.cf ファイルを構築する必要がある場合は、sendmail 構成を変更するを参照してください。

表 16  sendmail において追加または改訂された m4 構成マクロ
m4 マクロ
説明
FEATURE()
LOCAL_DOMAIN()
このマクロは、クラス w ($=w) にエントリを追加します。
MASQUERADE_EXCEPTION ()
マスカレードできないホストやサブドメインを定義する新しいマクロ。
SMART_HOST()
このマクロは user@[host] のように、括弧で囲まれたアドレスに使用できます。
VIRTUSER_DOMAIN() または VIRTUSER_DOMAIN_FILE()
これらのマクロを使用する場合は、$=R$={VirtHost} を含めます。$=R は、中継が許可された一連のホスト名です。

sendmail() の version 8.12 からの FEATURE の宣言についての変更点

FEATURE() の宣言についての変更点については、次の表を参照してください。

FEATURE の新しい名前および改訂された名前を使用するには、次の構文を使用します。

FEATURE(`name', `argument')

新しい sendmail.cf ファイルを構築する必要がある場合は、sendmail 構成を変更するを参照してください。

表 17  追加または改訂された FEATURE() の宣言
FEATURE() の名前
説明
compat_check
引数 : 次の段落の例を参照してください。
この新しい FEATURE() によって、送信者アドレスと受信者アドレスからなるアクセスマップ内で鍵を検索できます。この FEATURE() は、文字列 <@> で区切ります。たとえば、sender@sdomain<@>recipient@rdomain のようにします。
delay_checks
引数 : friend にすると、スパムメールの friend テストを実行できます。また、hater にすると、スパムメールの hater テストを実行できます。
すべての検査作業を遅らせる新しい FEATURE()FEATURE(`delay_checks') を使用すると、クライアントが接続する場合、またはクライアントが MAIL コマンドを発行する場合に、ルールセット check_mail および check_relay は呼び出されません。代わりに、これらのルールセットはルールセット check_rcpt によって呼び出されます。詳細については、/etc/mail/cf/README ファイルを参照してください。
dnsbl
引数 : この FEATURE() は、最大次の 2 つの引数を受け入れます。
  • DNS サーバー名

  • リジェクトメッセージ

DNS 参照の戻り値を検査する回数を複数にできる新しい FEATURE()。この FEATURE() を使用して、参照が一時的に失敗した場合の動作を指定できる点に注意してください。
enhdnsbl
引数: ドメイン名。
dnsbl の強化バージョンの新しい FEATURE() 。この FEATURE を使用して、DNS 参照の戻り値を検査できます。詳細は、/etc/mail/cf/README を参照してください。
generics_entire_domain
引数: なし。
genericstable$=G のサブドメインに適用するのにも使用できる新しい FEATURE()
ldap_routing
引数: 詳細は、http://www.sendmail.orghttp://www.sendmail.org の「リリースノート」を参照してください。
LDAP アドレスルーティングを実装する新しい FEATURE()
local_lmtp
引数 : LMTP (Local Mail Transfer Protocol) を使用できるメールプログラムのパス名。デフォルトは mail.local であり、今回の Oracle Solaris リリースでは LMTP を使用できます。
ローカルメールプログラムの DSN (delivery status notification) 診断コードのタイプを SMTP の正しい値に設定する FEATURE()
local_no_masquerade
引数: なし。
ローカルメールプログラムをマスカレードしないようにするために使用する新しい FEATURE()
lookupdotdomain
引数: なし。
アクセスマップの .domain を参照するのに使用する新しい FEATURE()
nocanonify
引数 : canonify_hosts またはなし。
FEATURE() には次の機能が含まれます。
CANONIFY_DOMAIN または CANONIFY_DOMAIN_FILE で指定したドメインのリストを、正規化のために演算子 $[ および $] に渡すことができます。
canonify_hosts がそのパラメータとして指定されている場合には、<user@host> など、ホスト名だけを含むアドレスを正規化できます。
複数のコンポーネントを持つアドレスの末尾にドットを追加できます。
no_default_msa
引数: なし。
sendmail() のデフォルト設定を m4 構成ファイルでオフにする新しい FEATURE。このファイルは、複数の異なるポート上で待機するために生成されたもので、RFC 2476 に実装されています。
nouucp
引数: reject にすると、! トークンを使用できません。 nospecialにすると、! トークンを使用できます。
! トークンをアドレスのローカルの部分に使用するかどうかを決定する FEATURE()
nullclient
引数: なし。
通常の構成ですべてのルールセットを提供する FEATURE()。スパムメール対策チェックを実行します。
preserve_local_plus_detail
引数: なし。
sendmail() がアドレスをローカル配信エージェントに渡す際に、アドレスの +detail の部分を保存できる新しい FEATURE
preserve_luser_host
引数: なし。
LUSER_RELAY を使用している場合に、受信者のホスト名を保存できる新しい FEATURE()
queuegroup
引数: なし。
電子メールのアドレス全体または受信者のドメインに基づいたキューグループを選択できる新しい FEATURE()
relay_mail_from
引数 : ドメインは、任意の引数です。
メールの送信側がアクセスマップに RELAY として指定されており、それをヘッダー行 From: でタグ付けされている場合に、リレーを許可する新しい FEATURE()。省略可能な引数 domain を指定すると、メール送信側のドメイン部も検査されます。
virtuser_entire_domain
引数: なし。
VIRTUSER_DOMAIN または VIRTUSER_DOMAIN_FILE を使って生成できる virtusertable エントリを一致させるための新しいクラスである $={VirtHost} を適用するために使用できる FEATURE()
また、FEATURE(`virtuser_entire_domain') を使用して、クラス $={VirtHost} をサブドメイン全体に適用することもできます。

次の FEATURE () 宣言はサポートされなくなりました。

表 18  サポートされていない FEATURE() 宣言
FEATURE() の名前
代替
rbl
削除されたこの FEATURE は、FEATURE(`dnsbl') および FEATURE(`enhdnsbl')() に置き換えられます。
remote_mode
/etc/mail/cf/subsidiary.mc では、FEATURE(`remote_mode')MASQUERADE_AS(`$S') に置き換えられます。$S は、sendmail.cf における SMART_HOST の値です。
sun_reverse_alias_files
FEATURE(`genericstable')
sun_reverse_alias_nis
FEATURE(`genericstable')
sun_reverse_alias_nisplus
FEATURE(`genericstable')

sendmail() の version 8.12 からの MAILER の宣言についての変更点

MAILER() 宣言では、配信エージェントのサポートを指定できます。配信エージェントを宣言するには、次の構文を使用します。

MAILER(`symbolic-name')

次の変更に注意してください。

  • この新しいバージョンの sendmail では、MAILER(`smtp') を宣言すると、メールプログラム dsmtp が追加されます。dsmtp により、メールプログラムのフラグ F=% を使用して、オンデマンドに配信することができます。dsmtp メールプログラムの定義では、新しい –DSMTP_MAILER_ARGS (デフォルトは IPC $h) を使用します。

  • MAILER によって使用されるルールセットの番号は削除されました。MAILER(`uucp') を除いて、MAILER をリストする際に必要な順序はありません。uucp-dom および uucp-uudom を使用する場合には、MAILER(`smtp') のあとに MAILER(`uucp') を配置する必要があります。

メールプログラムの詳細は、メールプログラムと sendmailを参照してください。新しい sendmail.cf ファイルを構築する必要がある場合は、sendmail 構成を変更するを参照してください。

sendmail の version 8.12 から追加された配信エージェントのフラグ

次の表では、配信エージェントの追加されたフラグについて説明しています。デフォルトでは、これらのフラグは設定されていません。これらの 1 文字のフラグはブール型です。このフラグを設定したりその設定を解除したりするには、次の例のように、フラグを構成ファイルの F= 文に含めるか除外します。

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,
表 19  メールプログラムの追加されたフラグ
フラグ
説明
%
このフラグを使用するメールプログラムは、ETRN 要求や次のいずれかのキューオプションを使ってキューにあるメッセージを選択しないかぎり、最初の受信者宛にメールを配信したり、キューを実行したりしません。 –qI–qR、または –qS
1
このフラグは、\0 などのヌル文字を送信するメールプログラムの機能を無効にします。
2
このフラグは、ESMTP の使用を無効にし、代わりに SMTP を使用するように要求します。
6
このフラグを指定すると、メールプログラムでヘッダーを 7 ビットにすることができます。

sendmail の version 8.12 から追加された配信エージェントの設定

次の表では、配信エージェントを定義するコマンド 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')

この例では、smtp メールプログラムで 1 回の接続で配信されるメッセージ数を 1000 に制限しています。

新しい sendmail.cf ファイルを構築する必要がある場合は、sendmail 構成を変更するを参照してください。


注 -  通常、mailer ディレクトリでこの設定の定義を変更するのは、微調整が必要な場合だけです。
表 20  配信エージェントの追加された設定
設定
説明
/=
引数 : ディレクトリのパス。
メールプログラムのプログラムを実行する前に chroot() を適用するディレクトリを指定します。
m=
引数 : define() ルーチンを使って事前に定義した次の m4 の値。
  • –smtp メールプログラムには SMTP_MAILER_MAXMSGS

  • –local メールプログラムには LOCAL_MAILER_MAXMSGS

  • –relay メールプログラムには RELAY_MAILER_MAXMSGS

smtplocal、または relay の各メールプログラムで、1 回の接続で配信するメッセージの数を制限します。
W=
引数 : 増分時間。
すべてのデータの送信後、メールプログラムが戻るまでの最長待ち時間を指定します。

sendmail の version 8.12 から追加されたキューの機能

次に、追加されたキューの機能について詳しく説明します。

  • 本リリースでは、複数のキューディレクトリをサポートしています。複数のキューを使用するには、次の例のように、アスタリスク (*) で終わっている –QueueDirectory オプション値を構成ファイルに追加します。

    O QueueDirectory=/var/spool/mqueue/q*

    このオプション値 /var/spool/mqueue/q* は、「q」で始まっているすべてのディレクトリ (またはディレクトリへのシンボリックリンク) をキューのディレクトリとして使用します。sendmail の実行中には、キューのディレクトリ構造を変更しないでください。キューを実行すると、デーモン以外のキューの実行時に冗長フラグ (–v) を使用しないかぎり、各キューについての実行プロセスが作成されます。この新しい項目が、無作為にキューに割り当てられます。

  • この新しいキューのファイルの名前付けシステムで使用する名前は、60 年間一意であることが保証されます。このシステムでは、キュー ID が複雑なファイルシステムのロックを使用しないで割り当てられるため、キューにある項目を簡単にほかのキューに移動することができます。

  • version 8.12 より、root だけがメールキューを実行できます。詳細については、mailq(1) のマニュアルページで説明されている変更を参照してください。新しいタスク手順については、キューディレクトリの管理のタスクマップを参照してください。

  • エンベロープの分割に対応するために、キューファイルの名前は 14 文字ではなく、15 文字にします。14 文字までの名前を持つファイルシステムは、サポートされません。

タスク手順については、キューディレクトリの管理のタスクマップを参照してください。

sendmail の version 8.12 からの LDAP の変更点

次のリストに、LDAP (Lightweight Directory Access Protocol) を sendmail で使用する際の変更点について説明します。

  • LDAPROUTE_EQUIVALENT() および LDAPROUTE_EQUIVALENT_FILE() を使用すると、同じホスト名を指定できます。これらのホスト名は、LDAP ルーティング参照のマスカレードドメイン名に置き換えられます。詳細は、/etc/mail/cf/README を参照してください。

  • http://www.sendmail.com/sm/open_source/sendmail とともに配布しているリリースノートで説明しているように、LDAPX マップの名前は LDAP に変更されました。LDAP には、次の構文を使用します。

    Kldap ldap options
  • 本リリースでは、一度の LDAP 参照に複数の値を返すことができます。次の例のように、返す値を –v オプションを付加したコンマ区切りの文字列に配置します。

    Kldap ldap -v"mail,more-mail"
  • LDAP マップの宣言で LDAP 属性が指定されていない場合は、一致した属性がすべて返されます。

  • このバージョンの sendmail は、LDAP 別名ファイルに指定された引用符などで囲まれた鍵や値の文字列内のコンマによって、1 つのエントリが複数のエントリに分割されるのを防止します。

  • このバージョンの sendmail には、LDAP マップ用の新しいオプションがあります。検索で separator によって区切られた属性と値の両方が返されるように、この –Vseparator オプションを使用して区切り文字を指定できます。

  • %s トークンを使用した LDAP フィルタ指定の構文解析に加えて、新しいトークンである %0 を使用して、鍵バッファーをエンコードすることもできます。%0 トークンは、LDAP の特殊文字に対して、文字どおりの意味を適用します。

次の例では、これらのトークンが「*」検索でどのように異なるかを示します。

表 21  トークンの比較
LDAP マップ指定
同等の指定
結果
-k"uid=%s"
-k"uid=*"
ユーザー属性を持つ任意のレコードに一致します
-k"uid=%0"
-k"uid=\2A"
*」という名前を持つユーザーに一致します

次の表では、LDAP マップの追加されたフラグについて説明しています。

表 22  LDAP マップの追加されたフラグ
フラグ
説明
–1
一致したレコードが 1 つだけだった場合、そのレコードを返します。複数のレコードが一致して返される場合には、結果として、レコードが検出されなかったことと同じとなります。
–r never|always|search|find
LDAP 別名の参照を解除するオプションを設定します。
–Z size
一致したもののうち、返すレコード数を制限します。

sendmail の version 8.12 からの組み込まれたメールプログラムの変更

古い組み込みメールプログラム [TCP] は使用できません。代わりに、新しく組み込まれたメールプログラム P=[IPC] を使用してください。プロセス間通信 ([IPC]) 組み込みメールプログラムで、それをサポートするシステム上の UNIX ドメインソケットへの配信を行えるようになりました。このメールプログラムは、指定したソケットで待機している LMTP 配信エージェントとともに使用できます。次に、メールプログラムの例を示します。

Mexecmail, P=[IPC], F=lsDFMmnqSXzA5@/:|, E=\r\n, 
S=10, R=20/40, T=DNS/RFC822/X-Unix, A=FILE /system/volatile/lmtpd

[IPC] メールプログラムの最初の引数の値が妥当であるか検査されるようになりました。次の表では、最初のメールプログラム引数に設定可能な値について説明しています。

表 23  最初のメールプログラム引数に設定可能な値
説明
A=FILE
UNIX ドメインソケットによる配信に使用します。
A=TCP
TCP/IP 接続に使用します。
A=IPC
最初のメールプログラム引数としては使用できません。

sendmail の version 8.12 から追加されたルールセット

次の表では、追加されたルールセットとその動作について説明しています。

表 24  新しいルールセット
セット
説明
check_eoh
ヘッダーから収集した情報を相関させ、欠けているヘッダーを検査します。このルールセットは、マクロストレージマップとともに使用し、すべてのヘッダーが収集されたあと、呼び出されます。
check_etrn
check_rcptRCPT を使用するように、ETRN コマンドを使用します。
check_expn
check_rcptRCPT を使用するように、EXPN コマンドを使用します。
check_vrfy
check_rcptRCPT を使用するように、VRFY コマンドを使用します。

次に、ルールセットの追加機能について説明します。

  • 番号が付けられたルールセットには、名前も付けられました。ただし、これらのルールセットに、番号でアクセスすることもできます。

  • H ヘッダー構成ファイルコマンドを使用して、デフォルトルールセットを指定し、ヘッダーを確認することができます。各ヘッダーに、独自のルールセットが割り当てられていない場合にだけ、このルールセットが呼び出されます。

  • ルールセット内のコメント、つまり括弧内のテキストは、構成ファイルのバージョンが 9 かそれ以上である場合には削除されません。たとえば、次のルールは、入力 token (1) を照合します。ただし、入力 token は照合しません。

    R$+ (1)		$@ 1
  • TCP ラッパーまたは check_relay ルールセットが原因でコマンドを拒否する場合でも、sendmail は SMTP RSET コマンドを受け入れます。

  • –OperatorChars オプションを何度も設定すると、警告が送信されます。また、ルールセットを定義したあとで –OperatorChars を設定しないでください。

  • 無効なルールセットを宣言すると、行だけでなく、そのルールセットの名前も無視されます。そのルールセットの行は S0 に追加されません。

sendmail の version 8.12 からのファイルの変更点

次の変更に注意してください。

  • 読み取り専用の /usr ファイルシステムをサポートするために、/usr/lib/mail ディレクトリの内容が /etc/mail/cf ディレクトリに移動されました。詳細は、/etc/mail/cf ディレクトリの内容を参照してください。ただし、シェルスクリプト /usr/lib/mail/sh/check-hostname および /usr/lib/mail/sh/check-permissions は、/usr/sbin ディレクトリに置かれるようになった点に注意してください。メールサービスに使用するその他のディレクトリおよびファイルを参照してください。下位互換性を確保するために、シンボリックリンクが各ファイルの新しい位置を示します。

  • /usr/lib/mail/cf/main-v7sun.mc の新しい名前は /etc/mail/cf/cf/main.mc です。

  • /usr/lib/mail/cf/subsidiary-v7sun.mc の新しい名前は /etc/mail/cf/cf/subsidiary.mc です。

  • 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 が検出されると、古い名前から新しい名前へのハードリンクが作成されます。それ以外の場合には、変更されません。デフォルトの内容は、ゼロ長です。

sendmail version 8.12 と構成内の IPv6 アドレス

sendmail の version 8.12 より、アドレスを正しく識別するために、構成に使用する IPv6 アドレスの前に IPv6: タグを付ける必要があります。IPv6 アドレスを識別しない場合は、タグを前に付けません。