メールシステムの管理

メールサービスのプログラムとファイル

メールサービスには、相互に対応する数多くのプログラムやデーモンが含まれています。この節では、電子メールの管理に関するプログラムや用語、あるいは概念について述べます。表 1-3 には、メールサービスに使用する /usr/bin ディレクトリの内容を示します。

表 1-3 メールサービスに使用する /usr/bin ディレクトリの内容

名前 

形式 

説明 

mail

ファイル 

ユーザーエージェント 

mailcompat

ファイル 

メールを SunOS 4.1 メールボックスフォーマットに格納するフィルタ 

mailq

リンク 

/usr/lib/sendmail へのリンクで、メール待ち行列の表示に使用

mailstats

ファイル 

/etc/mail/sendmail.st ファイルに格納されたメール統計情報の読み込みに使用するプログラム (存在する場合のみ)

mailx

ファイル 

ユーザーエージェント 

aliasadm

ファイル 

NIS+ 別名マップを処理するプログラム 

mconnect

ファイル 

アドレスの検証とデバッグのためメールプログラムに接続するプログラム 

newaliases

リンク 

/usr/lib/sendmail へのリンクで、別名ファイルのバイナリ形式を作成するのに使用

rmail

リンク 

/usr/bin/mail へのリンクで、メールの送信だけを許可するのによく使用されるコマンド

vacation

ファイル 

メールへの自動応答を設定するコマンド 

表 1-4 に、/etc/mail ディレクトリの内容を示します。

表 1-4 /etc/mail ディレクトリの内容

名前 

形式 

説明 

Mail.rc

ファイル 

mailtool ユーザーエージェントのデフォルトの設定値

aliases

ファイル 

メール転送情報 

aliases.dir

ファイル 

メール転送情報のバイナリ形式 (newaliases の実行によって作成される)

aliases.pag

ファイル 

メール転送情報のバイナリ形式 (newaliases の実行によって作成される)

mailx.rc

ファイル 

mailx ユーザーエージェントのデフォルトの設定値

main.cf

ファイル 

メインシステム用の構成ファイルの例 

sendmail.cf

ファイル 

メールルーティング用の構成ファイル 

sendmail.cw

ファイル 

メールホスト用の別名の数が多すぎるときに作成可能なオプションファイル 

sendmail.hf

ファイル 

SMTP HELP コマンドで使用するヘルプファイル

sendmail.pid

ファイル 

リスニングデーモンの PID を表示するファイル 

sendmail.st

ファイル 

sendmail 統計情報ファイル。このファイルが存在すると、sendmail は各メールプログラムのトラフィック量をログする

subsidiary.cf

ファイル 

下位システムに対する構成ファイルの例

表 1-5 にメールサービスに使用する /usr/lib ディレクトリの内容を示します。

表 1-5 メールサービスに使用する /usr/lib ディレクトリの内容

名前 

形式 

説明 

mail.local

ファイル 

メールボックスにメールを配信するメールプログラム 

sendmail

ファイル 

メールトランスポートエージェントとしても知られるルーティングプログラム 

メールサービスは、その他のいくつかのファイルおよびディレクトリを使用します。これらを表 1-6 に示します。

表 1-6 メールサービスに使用するその他のファイル

名前 

形式 

説明 

/var/spool/mqueue

ディレクトリ 

配信されなかったメールが格納される場所 

/var/mail/mailbox1/var/mail/mailbox2

ファイル 

配信されたメールのメールボックス 

/etc/sendmailvars

ファイル 

sendmail.cf から検索するためのマクロとクラス定義を格納

sendmailvars.org_dir

テーブル 

sendmailvars ファイルの NIS+ バージョン

/usr/sbin/in.comsat

ファイル 

メール通知デーモン 

/usr/sbin/syslogd

ファイル 

sendmail が使用するエラーメッセージログをとる場所

$OPENWINHOME/bin/mailtool

ファイル 

sendmail へのウィンドウベースのインタフェース

これらのプログラムの組合せによるメールサービスが提供されていますが、その相互作用を図 1-3 に簡略に示します。

図 1-3 メールプログラムの相互作用

Graphic

ユーザーは、mailxmailtool などのプログラムを使用してメッセージを送信します。これらのプログラムについては、mailx(1) または mailtool(1) のマニュアルページを参照してください。

メッセージは、メッセージを生成するのに使用されたプログラムにより収集され、sendmail デーモンに渡されます。sendmail デーモンは、メッセージのアドレスを「解釈」し (識別可能なセグメントに分割)、構成ファイル /etc/mail/sendmail.cf からの情報を使用して、ネットワークの名前構文、別名、転送情報、およびネットワークトポロジを決定します。sendmail はこの情報を使用して、メッセージが受信者に到達する経路を決定します。

sendmail デーモンはメッセージを適切なシステムに渡します。ローカルシステムの /usr/lib/mail.local プログラムは、メッセージの受信者の /var/mail/username ディレクトリのメールボックスにメールを配信します。

受信者は、メールが届いたことが通知されるので、mailmailxmailtool などのプログラムを使用してこれを受け取ります。

sendmail プログラム

SunOS 5.x オペレーティングシステムは、メールルーターとして sendmail プログラムを使用します。sendmail は、電子メールメッセージの受信と配信を担当します。これは、mailmailxmailtool といったメール読み取りプログラムと、uucp のようなメールトランスポートプログラムの間のインタフェースです。sendmail プログラムは、ユーザーが送った電子メールメッセージを制御し、受信者のアドレスを判断し、適切な配信プログラムを選び、配信エージェントが処理できるフォーマットにアドレスを書き直し、必要に応じてメールヘッダーを再フォーマットし、最後に変換したメッセージを配信のためのメールプログラムに渡します。


注 -

SunOS 2.4 以前の旧リリース版には、sendmail.mx と呼ばれるバイナリが含まれていました。現在このプログラムは sendmail プログラムに含まれており、これを有効にするには、/etc/nsswitch.conf のホストエントリに dns フラグを追加します。詳細は、「DNS 別名ファイルを設定する方法」 を参照してください。


図 1-4 は、sendmail がユーザー別名をどのように使用するかを示します。/usr/bin/mailx のようなメールを読み取るプログラムは、プログラム自身の別名を持つことができ、それらはメッセージが sendmail に達する前に展開されます。sendmail の別名は、多くの名前空間ソース (ローカルファイル、NIS、NIS+) からのものでも構いません。検索順序は nsswitch.conf ファイルによって決定されます。nsswitch.conf(4) のマニュアルページを参照してください。

図 1-4 sendmail が別名を使用する方法

Graphic

sendmail 構成ファイル

「構成ファイル」は、sendmail がその機能を実行する方法を制御します。構成ファイルにより、配信エージェント、アドレスの変換の規則、およびメールヘッダーのフォーマットが選択されます。ファイルについては、sendmail 構成ファイル」 を参照してください。

sendmail プログラムは、/etc/mail/sendmail.cf ファイルの情報を使用して、その機能を実行します。各システムには、/etc/mail ディレクトリにインストールされたデフォルトの sendmail.cf ファイルがあります。メールサーバーまたはメールクライアントのためにデフォルト構成ファイルを編集したり変更したりする必要はありません。カスタマイズされた構成ファイルを必要とするシステムは、メールホストとメールゲートウェイだけです。

SunOS 5.x システムには、以下に示すように、/etc/mail ディレクトリに 2 つのデフォルト構成ファイルがあります。

  1. メールホストまたはメールゲートウェイとして使用する 1 つのシステム (または複数のシステム) を指定するための main.cf という名前の構成ファイル

  2. subsidiary.cf という名前の構成ファイル (デフォルト sendmail.cf ファイルの複製コピー)

システムで使用する構成ファイルは、システムがメールサービスで果たす役割によって異なります。

次に、サイトの要求に応じて変更が可能な構成パラメータをいくつか説明します。

sendmail 構成テーブル

sendmail.cf ファイルにある 2 つのエントリに応答して、sendmail プログラムは、値を sendmailvars 構成テーブルから検索することにより、マクロおよびクラスを定義できます。次にそのようなコマンドを 2 つ示します。

L コマンドの構文は次のとおりです。

LXsearch_key

たとえば、Lmmaildomainの場合、検索キー maildomain を使って、変数 m に代入する値が構成テーブルから検索されます。多くの場合、1 文字の変数名は大文字、内部変数 (メールドメイン名の m など) は小文字です。

G コマンドの構文は次のとおりです。

GCsearch_key

たとえば、GVuucp-list となります。

この場合、検索キー uucp-list を使って、変数 V に代入する値が構成テーブルから検索されます。

どちらの場合も、検索キーでは大文字と小文字を区別します。

両方のコマンドには、ルックアップテーブルを使用せずに sendmail.cf ファイル内にマクロまたはクラスを定義する同等のコマンドがあります。DL と同等で、CG と同等です。

NIS+ をネットワークの管理に使用する場合は、テーブルのグローバルバージョンである sendmailvars 情報が管理されます。このテーブルは、NIS+ テーブルに加えて、またはその代替として /etc/mail/sendmailvars ファイルで管理できます。これらのソースが sendmail によって検索される順序は、/etc/nsswitch.conf ファイルにある sendmailvars エントリによって決まります。デフォルトでは、検索順序は files nisplus で、これは、sendmail は NIS+ テーブルで検索する前にローカルファイルから情報を検索しようとすることを意味します。

/etc/mail/sendmailvars ファイルにあるエントリのフォーマットは次のとおりです。

search_key [value1 value2 value3...]

検索キーの後ろには、タブまたは複数のスペースを入れることもできますが、値は 1 つのスペースで区切ります。

NIS+ sendmailvars テーブルには、2 つの列、つまりキーの列と値の列があります。値の列は、1 つの値、または各々がスペースによって区切られた複数の値を持つことができます。以下に例を示します。

キーの列 

値の列 

maildomain

eng.acme.com

uucp-list

acmemoon hugo comic

ほとんどのメール変数は NIS+ テーブルで定義しなければなりません。ただし、特殊なケースでは、システムは変数をローカル /etc/mail/sendmailvars ファイルに入れることにより、変数のグローバル設定を無効にすることが可能です。

.forward ファイル

ユーザーは、システム管理者の手を借りることなくプログラムのカスタムセットにメールを一時的にリダイレクトまたは送信するために、ホームディレクトリに、sendmail が使用する .forward ファイルを作成できます。メールの問題、特に所定のアドレスに配信されないメールに関する問題の解決の際、ユーザーのホームディレクトリに .forward ファイルがあるかどうかを常にチェックしてください。

ユーザーによくある間違いは、host1 上のホームディレクトリの .forward ファイルに、user@host2 にメールを転送する設定を入れてしまうことです。メールが host2 に送られると、sendmail は NIS や NIS+ 別名で user を検索し、user@host1 にメッセージを送り返すので、ループが発生し、メールは返送されてしまいます。