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

印刷ビューの終了

更新: 2016 年 11 月
 
 

メールサービスの基本のファイル

このセクションでは、メールサービスの管理に必要な次のファイルについて説明します。

sendmail 構成ファイル

sendmail 構成ファイルは、sendmail プログラムがその機能を実行する方法を制御します。構成ファイルにより、配信エージェント、アドレスの変換の規則、およびメールヘッダーのフォーマットが選択されます。sendmail プログラムは、/etc/mail/sendmail.cf ファイルの情報を使用して、その機能を実行します。

Oracle Solaris OS には、/etc/mail ディレクトリに次のデフォルト構成ファイルが用意されています。

  • sendmail.cf – デーモンモードで sendmail を実行するために使用する構成ファイル。詳細は、sendmail(1M) のマニュアルページを参照してください。

  • submit.cf – メール配信プログラムモードで sendmail を実行するために使用する構成ファイル。詳細は、sendmail の version 8.12 からの submit.cf 構成ファイルを参照してください。

メールサーバーを設定するときは、デフォルト構成ファイルを設定または編集する必要はありません。

メールホストを設定するときは、メール構成に必要な中継メールプログラムおよび中継ホストのパラメータを設定する必要があります。詳細は、sendmail 構成を変更するを参照してください。sendmail version 8.13 では、main.cf ファイルは必要ありません。

次の構成パラメータを変更できます。

  • 次の情報を指定する時間値。

  • メール配信の速度を指定する配信 (delivery) モード。

  • ビジー期間中の効率を高めるためのロード制限。これらのパラメータは、sendmail が、長いメッセージ、多くの受信者へのメッセージ、および長時間ダウンしているサイトへのメッセージを配信しないようにします。

  • ログに記録する問題の種類を指定するログレベル。

構成ファイルのバージョン

sendmail プログラムには、sendmail.cf ファイルのバージョンを定義するための構成オプションが含まれています。現在のバージョンの sendmail でも以前のバージョンの構成ファイルを使用できます。バージョンレベルには 0 から 10 の値を設定できます。また、Berkeley または Sun をベンダーとして定義することもできます。どちらも有効なベンダーオプションです。ベンダーを指定しないでバージョンレベルだけを指定した場合は、Sun がデフォルトベンダーとして選択されます。

sendmail では次のバージョンの構成ファイルが使用されます。

  • –V7/Sunsendmail の version 8.8 で使用されるバージョン。

  • –V8/Sunsendmail の version 8.9 で使用されるバージョン。このバージョンは、Solaris 8 リリースに含まれていました。

  • –V9/Sunsendmail の version 8.10 および 8.11 で使用されるバージョン。

  • –V10/Sunsendmail の version 8.12、8.13、および 8.14 で使用されるバージョン。sendmail の version 8.12 は、Solaris 9 でデフォルトとして使用されました。sendmail の version 8.13 は、Oracle Solaris 10 でデフォルトとして使用されました。sendmail の version 8.14 は、Oracle Solaris 11 リリースでデフォルトとして使用されています。


注 -  –V1/Sun は使用しないでください。詳細は、http://www.sendmail.org/vendor/sun/differences.html#4http://www.sendmail.org/vendor/sun/differences.html#4 を参照してください。

詳細は、sendmail 構成を変更するを参照してください。

メール別名ファイル

別名を保守する方法は、だれが別名を使用し、だれが別名を変更できなければならないかによって決まります。別名のタイプにはそれぞれ固有の形式要件があります。

別名を保守するには、次の項目を使用します。

  • .mailrc 別名ファイル

  • /etc/mail/aliases ファイル

  • NIS 別名マップ

詳細は、メール別名ファイルの管理のタスクマップを参照してください。

.mailrc 別名ファイル

.mailrc ファイルのリストに入っている別名には、そのファイルを所有するユーザーだけがアクセスできます。この制限により、ユーザーは自分だけが所有者として制御および使用できる別名ファイルを確立できます。.mailrc ファイルの別名の形式は、次のとおりです。

alias aliasname value value value ...
aliasname

メールの送信時に使用する名前

value

有効な電子メールアドレス

たとえば、scott の個人的な別名がネームサービスの scott の電子メールアドレスと一致しない場合、エラーが発生します。作成したメールに相手が返信すると、そのメールは間違った人に転送されることになります。これを回避するには、別の別名命名方式を使用する以外にありません。

/etc/mail/aliases ファイル

/etc/mail/aliases ファイルで作成したいずれの別名も、その別名の名前と、そのファイルが含まれているシステムのホスト名を知っているユーザーであればだれでも使用できます。ローカルの /etc/mail/aliases ファイルの配布リストの形式は、次のとおりです。

aliasname: value,value,value ...
aliasname

この別名にメールを送信するときに使用する名前

value

有効な電子メールアドレス

使用するネットワークがネームサービスを実行していない場合は、各システムの /etc/mail/aliases ファイルにすべてのメールクライアントのエントリを含めます。各システムのファイルを編集するか、1 つのシステムのファイルを編集してからそのファイルをほかのシステムに個々にコピーします。

/etc/mail/aliases ファイルの別名は、テキスト形式で保存されます。/etc/mail/aliases ファイルを編集したあとは、newaliases プログラムを実行する必要があります。これにより、データベースが再コンパイルされ、sendmail プログラムが別名をバイナリ形式で使用できるようになります。詳細は、ローカルメール別名ファイルを設定する方法を参照してください。

現在のホスト名やホスト名なしなどのローカル名のみに別名を作成できます。たとえば、システム saturn にメールボックスのあるユーザー john の別名エントリには、/etc/mail/aliases ファイルの次のエントリが入ります。

john: john@saturn

各メールサーバーに管理アカウントを作成する必要があります。管理アカウントを作成するには、メールサーバーのメールボックスを root に割り当て、root のエントリを /etc/mail/aliases ファイルに追加します。たとえば、システム saturn がメールボックスサーバーの場合は、エントリ root: sysadmin@saturn/etc/mail/aliases ファイルに追加します。

root ユーザーだけがこのファイルを編集できます。または、次のエントリを作成します。

aliasname: :include:/path/alias-file
aliasname

メールの送信時に使用する名前

/path/alias-file

別名リストを含むファイルへのフルパス

別名ファイルには、各行に 1 つの電子メールエントリを入れ、その他の表記は付けないでください。

user1@host1
user2@host2

/etc/mail/aliases に追加のメールファイルを定義でして、ログやバックアップコピーの保守できます。次のエントリでは、aliasname に送信されるすべてのメールを filename 内に格納します。

aliasname: /home/backup/filename

また、ほかのプロセスにメールを回送することもできます。次の例のように入力すると、メールメッセージのコピーが filename 内に格納され、コピーが出力されます。

aliasname: "|tee -a /home/backup/filename |lp"

詳細は、メール別名ファイルの管理のタスクマップを参照してください。

NIS aliases マップ

NIS aliases マップには、すべてのメールクライアントのエントリが保持されます。一般にこれらのエントリを変更できるのは、NIS マスターの root ユーザーだけです。この種の別名は頻繁に変更される場合には適していません。次の構文のように、ほかの別名ファイルをポイントする場合には役立ちます。

aliasname: aliasname@host
aliasname

メールの送信時に使用する名前

host

/etc/mail/alias ファイルを保持するサーバーのホスト名

ローカルドメインのすべてのユーザーは、NIS aliases マップのエントリを使用できます。これは、sendmail プログラムは、ローカルの /etc/mail/aliases ファイルの代わりに NIS aliases マップを使って送信アドレスを決定できるためです。詳細は、nsswitch.conf(4) のマニュアルページを参照してください。

NIS aliases マップの別名の形式は、次のようになります。

aliasname: value,value,value ...
aliasname

メールの送信時に使用する名前

value

有効な電子メールアドレス

詳細は、NIS mail.aliases マップを設定する方法を参照してください。

.forward ファイル

ユーザーは各自のホームディレクトリに、sendmail およびその他のプログラムがメールのリダイレクトや送信に使用する .forward ファイルを作成できます。

このセクションの内容は次のとおりです。

詳細は、.forward ファイルの管理のタスクマップを参照してください。

回避すべき転送状況

次の状況は容易に回避または修復できます。

  • メールが宛先のアドレスに配信されない場合は、ユーザーの .forward ファイルをチェックしてください。たとえば、ユーザーは、ホームディレクトリ host1.forward ファイルを配置して、user@host2 にメールを転送するようにしたのかもしれません。host2 にメールが着信すると、sendmail は NIS 別名に user があるかどうかを確認し、メッセージを user@host1 に返送します。このルーティングによってメール送信の無限ループが発生します。

  • セキュリティーの問題を予防するために、root または bin アカウントに .forward ファイルを決して置かないでください。必要な場合は、代わりに aliases ファイルを使ってメールを転送してください。

.forward ファイルの制御

メール配信で .forward ファイルを有効に使用するために、次の制御 (ファイルアクセス権) が正しく適用されていることを確認してください。

  • .forward ファイルへの書き込み権を持っているのは、そのファイルの所有者だけです。この制限によってセキュリティーが向上します。

  • root ユーザーは、ホームディレクトリへのパスを所有し、その書き込み権を持つ必要があります。たとえば、.forward ファイルが /export/home/terry/export、および /export/home にある場合、.forward ファイルは root ユーザーだけが所有します。root ユーザーは、そのファイルに対する書き込み権も持っています。

  • 実際のホームディレクトリに対する書き込み権を持っているのは、そのユーザーだけです。

  • .forward ファイルをシンボリックリンクにすることはできません。また、複数のハードリンクを持つこともできません。

.forward.hostname ファイル

特定のホストに送信されるメールのリダイレクト先となる .forward.hostname ファイルを作成できます。たとえば、ユーザーの別名が sandy@phoenix.example.com から sandy@example.com に変更された場合は、sandy のホームディレクトリに .forward.phoenix ファイルを置きます。

% cat .forward.phoenix
sandy@example.com
"|/usr/bin/vacation sandy"
% cat .vacation.msg
From: sandy@example.com (via the vacation program)
Subject: my alias has changed

My alias has changed to sandy@example.com.
Please use this alias in the future.
The mail that I just received from you
has been forwarded to my new address.

Sandy

この例では、メールが正しいアドレスに転送され、送信者には別名の変更が通知されます。vacation プログラムではメッセージファイルは 1 つしか使用できないため、この場合 1 回につき 1 つのメッセージしか転送できません。ただし、メッセージが特定のホストに限定されない場合、.forward ファイルで複数のホストに同じ休暇メッセージファイルを使用できます。

.forward+detail ファイル

転送メカニズムの拡張機能にはこのほかに、.forward+detail ファイルがあります。detail 文字列には、演算子文字を除く任意の文字を使用できます。演算子文字は、.:%&!^[]+.この種のファイルを使用すれば、ほかのユーザーが電子メールアドレスを無断で使用しているかどうかを確認できます。たとえば、あるユーザーが、だれかに電子メールアドレス sandy+test1@example.com を使用するように指示した場合、ユーザーは、この別名に配信されるメールを、アドレスに送信されるメールの中から識別できます。デフォルトにより、sandy+test1@example.com の別名に送信されたメールはすべて、この別名と .forward+detail ファイルと突き合わせて検査されます。ここで一致しない場合、メールはアドレス sandy@example.com に戻されますが、ユーザーは To: メールヘッダーで変更を確認できます。

/etc/default/sendmail ファイル

/etc/default/sendmail ファイルは、sendmail のための初期設定用オプションを保存し、ホストをアップグレードしたときにオプションが除去されないようにするために使用します。このファイルには次の変数を含めることができます。

CLIENTOPTIONS=“string

クライアントデーモンで使用する追加オプションを選択します。このオプションは、クライアント専用のキュー (/var/spool/clientmqueue) の内容を確認し、クライアントキューランナーとして動作します。構文の検査は行われないため、この変数を変更するときは間違えないように注意してください。

CLIENTQUEUEINTERVAL=#

メールキューの実行間隔を設定します。–QUEUEINTERVAL オプションに似ていますが、–CLIENTQUEUEINTERVAL オプションは、マスターデーモンの機能ではなくクライアントデーモンの機能を制御します。一般に、マスターデーモンはすべてのメッセージを SMTP ポートに配信できます。ただし、メッセージ負荷が高すぎるかまたはマスターデーモンが実行されていない場合、メッセージはクライアント専用のキューである /var/spool/clientmqueue に入ります。次に、クライアントだけのキューをチェックするクライアントデーモンがクライアントキューを処理します。

ETRN_HOSTS=“string

SMTP クライアントとサーバーが、キューの実行間隔を待たずに即座に対話を実行できるようにします。これらは定期的な間隔です。サーバーは、指定されたホストに送信されるキューを即座に配信できます。詳細は、etrn(1M) のマニュアルページを参照してください。

MODE=-bd

–bd オプションを使用するか、未定義のままにしておくことによって、sendmail を起動するためのモードを選択します。詳細は、sendmail(1M) のマニュアルページを参照してください。

OPTIONS=string

マスターデーモンで使用される追加オプションを選択します。構文の検査は行われないため、この変数を変更するときは間違えないように注意してください。

QUEUEINTERVAL=#

マスターデーモンのメールキューの実行間隔を設定します。正の整数 # のあとに、秒の場合は s、分の場合は m、時の場合は h、日の場合は d、週の場合は w を付けます。この構文は sendmail の起動前に確認されます。この間隔が負の場合、またはエントリの最後の文字が不適当な場合、この間隔は無視され、sendmail は 15 分のキュー間隔で起動します。

QUEUEOPTIONS=p

キューを実行するたびに新しいキューランナーを作成する代わりに、各実行の間に休止する単一の永続的なキューランナーを使用できるようにします。このオプションに設定可能な値は –p だけです。p 以外に設定すると、このオプションは無効になります。