メールシステムの管理

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

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

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

名前 

形式 

説明 

aliasadm

ファイル 

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

mail

ファイル 

ユーザーエージェント 

mailcompat

ファイル 

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

mailq

リンク 

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

mailstats

ファイル 

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

mailx

ファイル 

ユーザーエージェント 

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

ファイル 

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

relay-domains

ファイル 

リレーが可能なドメインの全リストが含まれている。デフォルトでは、ローカルドメインだけが使用できる 

sendmail.cf

ファイル 

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

sendmail.cw

ファイル 

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

sendmail.hf

ファイル 

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

sendmail.pid

ファイル 

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

sendmail.st

ファイル 

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

sendmailvars

ファイル 

sendmail.cf からの名前空間の検索用のマクロとクラス定義を格納する

subsidiary.cf

ファイル 

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

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

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

名前 

形式 

説明 

mail.local

ファイル 

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

sendmail

ファイル 

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

/usr/lib ディレクトリ内は、sendmail.cf ファイルの構築に必要なファイルをすべて含むサブディレクトリです。このディレクトリの内容は、表 1-6 に示すとおりです。

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

名前 

形式 

説明 

README

ファイル 

構成ファイルを説明する文書 

cf

ディレクトリ 

ホストのサイトに依存する、およびサイトに依存しない説明 

cf/main-v7sun.mc

ファイル 

主要な構成ファイル 

cf/makefile

ファイル 

新しい構成ファイルを作成する場合の規則が含まれている 

cf/subsidiary-v7sun.mc

ファイル 

/var/mail を別のホストから NFS マウントするホストの構成ファイル

domain

ディレクトリ 

サイトに依存するサブドメインの説明 

domain/generic.m4

ファイル 

Berkeley からのジェネリックドメインファイル 

domain/solaris-antispam.m4

ファイル 

sendmail 関数を以前の Solaris 版のようにする変更を伴うドメインファイル。リレーがまったく使用できない場合を除いて、ホスト名が指定されていない送信側アドレスは拒否され、また解決されないドメインは拒否される

domain/solaris-generic.m4

ファイル 

sendmail 関数を以前の Solaris 版のようにする変更を伴うドメインファイル (デフォルト)

feature

ディレクトリ 

特定のホスト用の特別な機能の定義 (機能の詳細な説明は README を参照)

m4

ディレクトリ 

サイトに依存しないインクルードファイル 

mailer

ディレクトリ 

ローカル、smtpuucp を含むメールプログラムの定義

ostype

ディレクトリ 

いろいろなオペレーティングシステム環境を説明する定義 

ostype/solaris2.m4

ファイル 

ローカルメールプログラムを mail に定義する

ostype/solaris2.ml.m4

ファイル 

ローカルメールプログラムを mail.local に定義する (デフォルト)

sh

ディレクトリ 

m4 作成プロセスと移行支援プログラムで使用するシェルスクリプト

sh/check-permissions

ファイル 

include: エイリアスと .forward ファイルのアクセス権、および正確なアクセス権に必要なこれらの親ディレクトリのパスを確認する

sh/check-hostname

ファイル 

sendmail が完全指定のホスト名を判別できることを確認する

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

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

名前 

形式 

説明 

sendmailvars.org_dir

テーブル 

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

/etc/shells

ファイル 

有効なログインシェルをリストする 

/usr/sbin/in.comsat

ファイル 

メール通知デーモン 

/usr/sbin/makemap

ファイル 

入力されたマップのバイナリフォーマットを構築する 

/usr/sbin/syslogd

ファイル 

sendmail が使用するエラーメッセージログをとるデーモン

/usr/dt/bin/dtmail

ファイル 

CDE メールユーザーエージェント 

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

ファイル 

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

/var/spool/mqueue

ディレクトリ 

配信されないメール用の記憶領域 

$OPENWINHOME/bin/mailtool

ファイル 

ウィンドウベースのメールユーザーエージェント 

これらのプログラムの組合せによるメールサービスが提供されていますが、その相互作用を図 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 プログラム

sendmail プログラムは、TCP/IP や UUCP などの異なる通信プロトコルを使用できます。また SMTP サーバー、メッセージキュー、メーリングリストも実装します。名前の解釈は、ドメインベースのネーミングとその環境で指定されている規則の両方を処理できるパターンマッチングシステムで制御されます。

sendmail プログラムは、ドメインベースのネーミングと任意の (古い) 名前構文を受け入れて、指定されている補完方法を使用して曖昧さを解決します。sendmail は共通点のないネーミングスキーム間でメッセージを変換することもできます。ドメインの手法は、物理的なネーミング対論理的なネーミングの問題を分離します。インターネットドメインのネーミングの規則の詳細は、『TCP/IP とデータ通信』を参照してください。

他のネットワーク上のホストに対してローカルのように見えるネットワーク名を提供するなど、その環境で指定されている技法によって特殊な場合を処理できます。

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


注 -

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


sendmail プログラムでは、メールルーティングに必要な 3 つのメカニズムをサポートしています。どのメカニズムを選択するかは、サーバーまたはドメイン全体の変更なのか、または単に 1 人のユーザーの変更であるかによって決まります。また、異なる再ルーティングメカニズムを選択することにより、必要な管理レベルに変更できます。

1 つめの再ルーティングメカニズムはエイリアシングです。エイリアシングとは、使用するファイルのタイプに基づいて、サーバー全体、または名前空間全域ごとに名前をアドレスに対応させるメカニズムです。名前空間の別名ファイルを使用すると、メール再ルーティングの変更を単一のソースで管理できますが、この変更が伝達されるときに、遅延時間が発生する可能性があります。また、名前空間管理は、通常、システム管理者の選択グループに限定されるため、一般ユーザーが実行できる変更ではありません。サーバーの別名ファイルを通じて処理された再ルーティングは、そのサーバーのスーパーユーザーによって管理されます。通常、この変更の伝達に関連した遅延時間はほとんどみられませんが、この変更はローカルサーバーにしか反映されません。この制約事項は、メールのほとんどが 1 つのサーバーに送信される場合には問題ありませんが、この変更を多数のメールサーバーに配信する場合には、ネームサービスを使用した方が簡単です。これも一般ユーザーが実行できる変更ではありません。

次のメカニズムは、転送と取り込みです。このメカニズムを使用すると、ユーザーはメールの再ルーティングを実行できます。転送を使用すると、ローカルユーザーは、着信メールを他のメールボックス、別のメールプログラム、あるいは他のメールホストにルーティングし直すことができます。このメール再ルーティングの形式は、.forward ファイルを使用することによりサポートされます。これらのファイルの詳細は、.forward ファイル」を参照してください。

最後の再ルーティングメカニズムは取り込みで、これを使用すると、別名リストを、ルートアクセスを要求する代わりに、ユーザーによって保守できます。このメカニズムを提供するには、スーパーユーザーは、サーバー上の別名ファイル内に適切なエントリを作成する必要があります。このエントリが作成されると、ユーザーは必要に応じてメールをルーティングし直すことができるようになります。取り込みの詳細は、/etc/mail/aliasesを参照してください。

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

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

Graphic

sendmail プログラムの機能

sendmail プログラムには、次のような機能があります。

図 1-5 には、sendmail がメールシステムで他のプログラムと対話する方法を示します。

図 1-5 sendmail と他のメールプログラムとの対話

Graphic

ユーザーは、メール生成プログラムおよび送信プログラムと対話します。メール送信が依頼されると、メール生成プログラムは sendmail を呼び出し、sendmail は適切なメールプログラムにメッセージを送ります。発信者の一部はネットワークサーバーであったり、またメールプログラムの一部はネットワーククライアントであるため、sendmail は、インターネットメールゲートウェイとしても使用できます。

sendmail 構成ファイル

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

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

Solaris オペレーティング環境には、以下に示すように、/etc/mail ディレクトリに 2 つのデフォルト構成ファイルがあります。

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

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

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

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