Solaris のシステム管理 (資源管理とネットワークサービス)

第 26 章 メールサービス (リファレンス)

sendmail プログラムは、構成ファイルを使用して「別名」変換と転送、ネットワークゲートウェイへの自動ルーティング、柔軟な構成を提供するメール転送エージェントです。Solaris オペレーティング環境では、ほとんどのサイトで使用できる標準構成ファイルが付属しています。第 24 章「メールサービス (概要)」では、メールサービスのコンポーネントと典型的なメールサービスの構成を紹介します。第 25 章「メールサービス (手順)」では、電子メールシステムをセットアップして管理する方法について説明します。この章では、以下のトピックについて説明します。

この Solaris 9 の sendmail バージョン 8.12 に含まれる新しい機能については、第 27 章「メールサービスの新機能 (リファレンス)」を参照してください。 mail.localmailstatsmakemap に関する変更、および新しいメンテナンスユーティリティである editmap についてもお読みください。以上の章で説明されていない詳細については、sendmail(1M)mail.local(1M)mailstats(1)makemap(1M)、および editmap(1M) のマニュアルページを参照してください。

Solaris 版の sendmail

ここでは、以下の項目について sendmail の Solaris 版と一般的な Berkeley バージョンを比較します。

sendmail のコンパイルに使用できるフラグと使用できないフラグ

次に、Solaris 9 に含まれている sendmail のバージョンをコンパイルするときに使用するフラグを示します。構成に他のフラグが必要な場合は、そのソースをダウンロードし、バイナリにコンパイルし直してください。このプロセスについては、http://www.sendmail.org を参照してください。

表 26-1 一般的な sendmail フラグ

フラグ 

説明 

SOLARIS=20900

Solaris 9 オペレーティング環境をサポートする 

MILTER

メールフィルター API をサポートする 

NETINET6

IPv6 をサポートする。このフラグは、conf.h から Makefile に移動

表 26-2 マップとデータベースの種類

フラグ 

説明 

NDBM

ndbm データベースをサポートする

NEWDB

db データベースをサポートする

USERDB

User データベースをサポートする

NIS

nis データベースをサポートする

NISPLUS

nisplus データベースをサポートする

LDAPMAP

LDAP のマップをサポートする

MAP_REGEX

正規表現のマップをサポートする 

表 26-3 Solaris のフラグ

フラグ 

説明 

SUN_EXTENSIONS

sun_compat.o に含まれる Sun の拡張をサポートする

SUN_LOOKUP_MACRO

sendmail.cfLG 構成コマンドをサポートする。この 2 つのコマンドの使用は推奨されない

SUN_DEFAULT_VALUES

Solaris フラグ SUN_CONTENT_LENGTH のデフォルト値だけをサポートする

SUN_INIT_DOMAIN

下位互換性を確保するために、NIS ドメイン名をサポートしてローカルホスト名を完全指定する。詳細は、http://www.sendmail.org のベンダー固有の情報を参照

SUN_CONTENT_LENGTH

ファイルへのメッセージで Content-Length: ヘッダをサポートする。詳細は、http://www.sendmail.org のベンダー固有の情報を参照

SUN_SIMPLIFIED_LDAP

Sun 固有の簡略化された LDAP API をサポートする。詳細は、http://www.sendmail.org のベンダー固有の情報を参照

VENDOR_DEFAULT=VENDOR_SUN

Sun をデフォルトのベンダーに選択する 

次の表に、Solaris 9 に添付される sendmail のバージョンのコンパイルに使用されない一般的なフラグを示します。

表 26-4 sendmail の Solaris 版に使用されない一般的なフラグ

フラグ 

説明 

SASL

Simple Authentication and Security Layer (RFC 2554) 

STARTTLS

Transaction Level Security (RFC 2487) 

sendmail のコンパイルに使用するフラグの一覧を参照するには、次のコマンドを使用します。


% /usr/lib/sendmail -bt -d0.10 < /dev/null

注 -

上記のコマンドでは、Sun 固有のフラグは表示されません。


sendmail の代替コマンド

Solaris リリースには、Berkley による汎用リリースで提供されているコマンドの同義語がすべて組み込まれているわけではありません。この表には、コマンドの別名のリストとそれが Solaris リリースに組み込まれているかどうか、および sendmail を使って同じ動作を生成する方法を示しています。

表 26-5 代替 sendmail コマンド

代替名 

Solaris への組み込み 

sendmail を使用したオプション

hoststat 組み込まれていないsendmail -bh
mailq 組み込まれているsendmail -bp
newaliases 組み込まれているsendmail -bi
purgestat 組み込まれていないsendmail -bH
smtpd 組み込まれていないsendmail -bd

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

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

表 26-6 構成ファイルのバージョン

フィールド 

説明 

V7/Sun

sendmail のバージョン 8.8 で使用された設定

V8/Sun

sendmail のバージョン 8.9 で使用された設定。この設定は、Solaris 8 に含まれていた

V9/Sun

sendmail のバージョン 8.10 と 8.11 で使用された設定

V10/Sun

sendmail のバージョン 8.12 で使用される設定。バージョン 8.12 は、Solaris 9 のデフォルト


注 -

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


作業手順については、第 25 章「メールサービス (手順)」sendmail.cf 構成ファイルの構築 (手順) を参照してください。

メールサービスのソフトウェアとハードウェアのコンポーネント

ここでは、メールシステムのソフトウェアとハードウェアの構成要素について説明します。

ソフトウェアのコンポーネント

各メールサービスには、少なくとも以下のどれかのソフトウェアコンポーネントが含まれます。

ここでは、以下のソフトウェアコンポーネントについても説明します。

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

メールユーザーエージェントは、ユーザーとメール転送エージェント間のインタフェースとして機能するプログラムです。sendmail プログラムは、メール転送エージェントです。Solaris のオペレーティング環境は、以下のメールユーザーエージェントを提供します。

メール転送エージェント

「メール転送エージェント」は、メールメッセージのルーティングとメールアドレスの解釈を行います。このエージェントは、メールトランスポートエージェントとも呼ばれます。Solaris オペレーティング環境ソフトウェアの転送エージェントは sendmail です。転送エージェントは次の機能を実行します。

ローカル配信エージェント

「ローカル配信エージェント」は、メールの配信プロトコルを実行するプログラムです。Solaris オペレーティング環境に搭載されているローカル配信エージェントについては以下に述べます。

第 27 章「メールサービスの新機能 (リファレンス)」では、以下の関連項目について説明します。

メールプログラム

「メールプログラム」は、sendmail 固有の用語です。メールプログラムsendmail によって使用され、カスタマイズしたローカル配信エージェントまたはカスタマイズされたメール転送エージェントの特定のインスタンスを指定します。sendmail.cf ファイルに少なくとも 1 つのメールプログラムを指定する必要があります。作業手順については、第 25 章「メールサービス (手順)」sendmail.cf 構成ファイルの構築 (手順) を参照してください。ここでは、2 種類のメールプログラムについて説明します。

メールプログラムの詳細については、http://www.sendmail.org/m4/readme.html または /usr/lib/mail/README を参照してください。

SMTP (Simple Mail Transfer Protocol) メールプログラム

SMTP はインターネットで使用される標準のメールプロトコルです。このプロトコルが、メールプログラムを定義します。

UUCP (UNIX-to-UNIX Copy Program) メールプログラム

UUCP の使用は、できるだけ避けてください。説明については、http://www.sendmail.org/m4/uucp.html を参照するか、/usr/lib/mail/README で「UUCP メールプログラムの使用」の文字列を検索してください。

UUCP が、メールプログラムを定義します。

uucp-old

$=U クラスの名前が uucp-old に送られます。 uucp は、このメールプログラムの以前の名前です。uucp-old メールプログラムはヘッダーでは感嘆符を用いるアドレスを使用します。

uucp-new

$=Y クラスの名前が uucp-new に送られます。受信側の UUCP メールプログラムが単一の転送で複数の受信者を管理できる場合は、このメールプログラムを使用します。suucp は、このメールプログラムの以前の名前です。uucp-new メールプログラムはヘッダーで感嘆符を用いるアドレスも使用します。

構成に MAILER(smtp) も指定されている場合は、さらに以下の 2 つのメールプログラムが定義されます。

uucp-dom

このメールプログラムは、ドメインスタイルアドレスを使用し、基本的に SMTP のリライトルールを適用します。

uucp-uudom

$=Z クラスの名前が uucp-uudom に送られます。uucp-uudomuucp-dom は、ドメインスタイルアドレスという同じヘッダーアドレスフォーマットを使用します。


注 -

smtp メールプログラムは UUCP メールプログラムを変更するので、.mc ファイルの MAILER(uucp) の前に必ず MAILER(smtp) を記述します。


メールアドレス

「メールアドレス」には、受信者の名前と、メールメッセージが配信されるシステムが含まれます。ネームサービスを使用しない小さなメールシステムを管理する場合、メールのアドレス指定は簡単です。つまり、ログイン名がユーザーを一意に識別します。メールボックスを含む複数のシステムで構成されるメールシステム、または 1 つ以上のドメインで構成されるメールシステムを管理する場合は複雑になります。UUCP またはその他のメールシステムによって外部に接続する場合は、さらに複雑になります。以下の節で、メールアドレスの各部とその複雑さを説明しています。

ドメインとサブドメイン

電子メールのアドレス指定には、ドメインが使用されます。「ドメイン」は、ネットワークアドレスの命名のためのディレクトリ構造です。ドメインは 1 つ以上のサブドメインを持つことができます。アドレスのドメインとサブドメインは、ファイルシステムの階層と比較できます。サブディレクトリが上位のディレクトリに含まれるように、メールアドレスの各サブドメインもその右のドメインに含まれると考えられます。

次の表に米国における最上位のドメインを示します。

表 26-7 最上位のドメイン

ドメイン 

説明 

com

企業 

edu

教育機関用 

gov

米国の政府機関 

mil

米国の軍事機関  

net

ネットワーク組織 

org

その他の非営利組織 

ドメインには大文字と小文字の区別がありません。アドレスのドメイン部分には、大文字、小文字、またはその両方を区別なく混合して使用できます。

ドメインについての詳細は、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』の「ドメインネームシステム (概要)」を参照してください。

ネームサービスドメイン名とメールドメイン名

ネームサービスドメイン名とメールドメイン名を操作するときは、以下のことに注意します。

詳細は、sendmail とネームサービスの相互作用を参照してください。

メールアドレスの一般的な書式

一般に、メールアドレスは次のような書式になります。詳細は、経路に依存しないメールアドレスを参照してください。


user@subdomain. ... .subdomain2.subdomain1.top-level-domain

アドレスの @ 記号より左の部分はローカルアドレスです。ローカルアドレスには、以下の内容を含めることができます。


注 -

受信側のメールプログラムでアドレスのローカル部分を解釈する必要があります。メールプログラムの詳細は、メールプログラムを参照してください。


アドレスの @ 記号より右の部分は、ローカルアドレスが位置するドメインレベルを示します。各サブドメインはドットで区切られます。アドレスのドメイン部分は、組織、物理的な場所、または地域を表すことができます。 さらに、ドメイン情報の順序は階層的で、ローカルなサブドメインほど @ 記号に近くなります。

経路に依存しないメールアドレス

メールアドレスは、経路に依存しないアドレス指定ができます。経路に依存しないアドレス指定では、電子メールメッセージの発信者は、受信者の名前と最終の宛先を指定する必要があります。インターネットなどの高速ネットワークでは、経路に依存しないアドレスを使用します。経路に依存しないアドレスは次のような書式になります。


user@host.domain

UUCP 接続の経路に依存しないアドレスは次のような書式になります。


host.domain!user

コンピュータのドメイン階層命名方式が普及したため、経路に依存しないアドレスがより一般的になってきました。実際、次に示すように、もっとも一般的な経路に依存しないアドレスはホスト名を省略し、電子メールメッセージの最終宛先の識別をドメインネームサービスに任せています。


user@domain

経路に依存しないアドレスでは、まず @ 記号を検索し、ドメイン階層を右 (最上位) から左 (@ 記号の右側にあるもっとも固有な部分) へと読み取ります。

メールボックスファイル

メールボックス」は、電子メールメッセージの最終的な宛先となるファイルです。メールボックス名には、ユーザー名または postmaster などの特定の機能の名前を指定できます。メールボックスは、ユーザーのローカルシステムかリモートのメールサーバーのいずれかの /var/mail/username ファイルにあります。ただし、いずれの場合でも、メールボックスはメールが配信されるシステム上にあります。

ユーザーエージェントがメールスプールからメールを取り出し、ローカルメールボックスに容易に格納できるように、メールは常にローカルファイルシステムに配信される必要があります。ユーザーのメールボックスの宛先として、NFS でマウントされたファイルシステムを使用しないでください。特にリモートサーバーから /var/mail ファイルシステムをマウントしているメールクライアントには、直接メールを送信しないでください。この場合ユーザー宛てのメールは、クライアントのホスト名ではなく、メールサーバーにアドレス指定する必要があります。NFS でマウントされたファイルシステムは、メールの配信と処理に問題を起こすことがあります。

/etc/mail/aliases ファイルと NIS や NIS+ といったネームサービスは、電子メールのアドレスに別名を作成するメカニズムを持っているため、ユーザーは、ユーザーのメールボックスの正確なローカル名を知る必要はありません。

次の表に、特殊な目的のメールボックスに対する共通の命名規則をいくつか示します。

表 26-8 メールボックス名の書式についての規則

書式 

説明 

username

多くの場合、ユーザー名はメールボックス名と同じ 

Firstname .Lastname Firstname _Lastname Firstinitial .Lastname Firstinitial_Lastname

ユーザー名は、ドット (または下線) でファーストネームとラストネームに区切ったフルネームか、あるいはファーストネームがイニシャルで、ドット (または下線) でイニシャルとラストネームを区切ったもの 

postmaster

ユーザーは、postmaster のメールボックスに質問を送ったり、問題点を報告したりできる。通常は各サイトとドメインに postmaster メールボックスがある

MAILER-DAEMON

sendmail は、MAILER-DAEMON 宛てのメールを自動的にポストマスターに送る

aliasname -request

-request で終わる名前は、配布リストの管理アドレス。このアドレスは、配布リストを管理する人にメールをリダイレクトする

owner- aliasname

owner- で始まる名前は、配布リストの管理アドレス。このアドレスは、メールエラーを処理する人にメールをリダイレクトする

owner-owner

この別名は、エラーを戻す先の owner-aliasname の別名がない場合に使用される。このアドレスは、メールエラーを処理する人にメールをリダイレクトし、大量の別名を管理する任意のシステムで定義される

local %domain

パーセント記号 (%) は、メッセージがその宛先に着くと展開されるローカルアドレスを示す。ほとんどのメールシステムは、% 記号つきのメールボックス名を全メールアドレスとして翻訳する。%@ と置き換えられ、メールはそれに応じてリダイレクトされる。多くの人が % を使用するが、これは正式な標準ではない。この規則は、電子メールの世界では「パーセントハック」と呼ばれている。この機能は、メールに問題が起こった場合にデバッグに使用されることが多い

sendmail バージョン 8 より、所有者の別名が存在する場合、グループの別名に送信されるメールの封筒の送信者は、所有者の別名から展開されるアドレスに変更されました。この変更によって、メールエラーは、送信者に返送されるのではなく、別名の所有者に送信されるようになりました。この変更によって、別名に送信されたメールは、別名の所有者から送信されたように見えます。次の別名の書式は、この変更に関連したいくつかの問題に対応します。


mygroup: :include:/pathname/mygroup.list
owner-mygroup: mygroup-request
mygroup-request: sandys, ignatz

この例では、mygroup の別名が、このグループの実際のメール別名です。owner-mygroup の別名は、エラーメッセージを受信します。mygroup-request の別名は、管理の要求に使用してください。この構造は、mygroup の別名に送信されたメールでは、封筒の送信者が mygroup-request に変更されることを意味します。

メール別名

別名 (alias) とは、もう 1 つの別の名前を指します。電子メールでは、メールボックスの場所を割り当てたり、メールリストを定義したりするために別名を使用できます。作業マップについては、第 25 章「メールサービス (手順)」メール別名ファイルの管理 (作業マップ)を参照してください。この章の メール別名ファイルも参照してください。

大きなサイトでは通常、メール別名は、メールボックスの場所を定義します。メール別名を提供することは、複数の部屋を占有する大きな会社の個人のアドレスに部屋番号を含めるようなものです。部屋番号を提供しない場合は、メールは中央アドレスに配信されます。部屋番号がなければ、ビルの内部のどこにメールを配信するかを特定するために余分な労力が必要になり、誤りが発生する可能性も増加します。たとえば、同じ建物に Kevin Smith という名前の人が 2 人いる場合、一方だけがメールを受け取ることになる可能性があります。この問題を解決するには、それぞれの Kevin Smith のアドレスに部屋番号を追加する必要があります。

メールリストを作成するときは、なるべくドメインの場所に依存しないアドレスを使用してください。別名ファイルの移植性と柔軟性を高めるため、別名エントリをできるかぎり一般的でシステムに依存しない形式にしてください。たとえば、システム mars のドメイン example.comignatz というユーザー名がある場合、別名は ignatz@mars ではなく、ignatz@example としてください。ユーザー ignatz がシステム名を変更しても、example ドメインには存在し続ける場合、システム名の変更を反映するように別名ファイルを更新する必要はありません。

別名エントリを作成するときは、1 行ごとに 1 つの別名を入力します。ユーザーのシステム名を含むエントリは 1 つだけにしてください。たとえば、ユーザー ignatz には、次のエントリを作成できます。


ignatz: iggy.ignatz
iggyi: iggy.ignatz
iggy.ignatz: ignatz@mars

ローカル名やドメインに別名を作成できます。たとえば、システム mars にメールボックスがあり、ドメイン planets 内のユーザー fred の別名エントリでは、NIS+ 別名テーブルに次のエントリを作成できます。


fred: fred@planets

ドメイン外のユーザーを含むメールリストを作成するときは、ユーザー名とドメイン名を持つ別名を作成してください。たとえば、example.com ドメインの privet システムに smallberries というユーザーが存在する場合は、smallberries@example.com という別名を作成します。送信者の電子メールアドレスは、メールがユーザードメイン外に発信されるときは、完全指定ドメイン名に自動的に変換されます。

以下に、メール別名のファイルを作成して管理する方法を示します。

ハードウェアコンポーネント

メールの構成に必要な 3 つの要素は、単一のシステムによって提供することも個別のシステムによって提供することもできます。

ユーザーがドメイン外のネットワークと通信をするためには、4 番目の要素であるメールゲートウェイを追加する必要があります。詳細は、メールゲートウェイを参照してください。次の節では各ハードウェアコンポーネントについて説明しています。

メールホスト

メールホスト」は、ネットワークのメインのメールマシンに指定するマシンです。メールホストはサイトにおいて、他のシステムでは配信できないメールを転送するためのマシンになります。hosts データベースにシステムをメールホストとして指定するには、ローカルの /etc/hosts ファイルか、ネームサービスのホストファイルで、IP アドレスの右に mailhost を追加します。メールホストシステムでは、main.cf ファイルもメール構成ファイルとして使用する必要があります。作業手順については、第 25 章「メールサービス (手順)」メールホストを設定する方法を参照してください。

メールホストとして適切なのは、ローカルエリアネットワーク上のシステムで、電話回線に PPP または UUCP リンクを設定するためのモデムがあるものです。もう 1 つの候補は、ネットワークからグローバルなインターネットネットワークへのルーターとして構成されたシステムです。詳細は、第 29 章「Solaris PPP 4.0 (概要)」第 38 章「UUCP (概要)」、およびSolaris のシステム管理 (IP サービス)』の「ルーターの構成」を参照してください。ローカルネットワークのどのシステムにもモデムがない場合は、その中の 1 つをメールホストに指定します。

サイトの中には、タイムシェアリング構成でネットワークに接続されていないスタンドアロンのマシンを使用するものがあります。つまり、スタンドアロンのマシンが、シリアルポートに接続された端末として機能する場合です。このような構成では、スタンドアロンのシステムを 1 つのシステムネットワークのメールホストに指定することで、電子メールを設定できます。第 24 章「メールサービス (概要)」ハードウェアコンポーネントの概要に、典型的な電子メール構成を示す図があります。

メールサーバー

メールボックス」は、特定のユーザーの電子メールを含む単一のファイルです。メールは、ローカルマシンまたはリモートサーバーのユーザーのメールボックスが存在するシステムに配信されます。「メールサーバー」は、/var/mail ディレクトリにユーザーのメールボックスを保持しているいずれかのシステムになります。作業手順については、第 25 章「メールサービス (手順)」メールサーバーを設定する方法を参照してください。

メールサーバーはクライアントからすべてのメールをルーティングします。クライアントがメールを送信するときに、メールサーバーは配信のためそのメールをキューに入れます。メールがキューに入れられたら、ユーザーはこれらのメールメッセージを失わずに、クライアントをリブートしたり、電源を切ったりすることができます。受信者がクライアントからメールを受け取ると、メッセージの「From」行のパスには、メールサーバー名が含まれます。受信者が応答すると、その応答はユーザーのメールボックスに送られます。メールサーバーとして適しているのは、ユーザーにホームディレクトリを提供するシステムか、定期的にバックアップされるシステムです。

メールサーバーがユーザーのローカルシステムでない場合は、構成内で NFS ソフトウェアを使用するユーザーは、/etc/vfstab ファイル (root アクセスがある場合) を使用するか、オートマウンタを使用して、/var/mail ディレクトリをマウントできます。NFS サポートが利用できない場合、ユーザーはサーバーにログインしてメールを読み込めます。

ネットワーク上のユーザーが、オーディオファイル、DTP システムからのファイルなど他の形式のファイルを送信する場合は、メールボックスのメールサーバーには、さらに多くの領域を割り当てる必要があります。

全メールボックス用に 1 台のメールサーバーを設定する利点の 1 つは、バックアップが簡単になることです。メールが多くのシステムに分散しているとバックアップ作業が困難になる場合があります。1 台のサーバーに多くのメールボックスを保存する場合の短所は、サーバーに障害が発生した場合に多くのユーザーが影響を受けることです。ただし、十分なバックアップ機能を提供すれば、1 台のサーバーを採用する価値があります。

メールクライアント

「メールクライアント」は、メールサーバーでメールを受信し、ローカルの /var/mail のないシステムです。このような構成は、リモートモードと呼ばれます。リモートモードは、デフォルトでは /etc/mail/subsidiary.cf で使用することができます。

メールクライアントには、/etc/vfstab ファイルに適切なエントリがあり、メールサーバーからメールボックスをマウントするマウント先があることを確認する必要があります。またクライアントの別名の宛先が、クライアント名ではなく、メールサーバーのホスト名になっていることを確認してください。作業手順については、第 25 章「メールサービス (手順)」メールクライアントを設定する方法を参照してください。

メールゲートウェイ

「メールゲートウェイ」は、異なる通信プロトコルを実行するネットワーク間の接続を処理したり、同じプロトコルを使用する異なるネットワーク間の通信を処理するマシンです。たとえば、メールゲートウェイでは、SNA (Systems Network Architecture) プロトコルセットを実行するネットワークに、TCP/IP ネットワークを接続する場合もあります。

設定のもっとも簡単なメールゲートウェイは、同じプロトコルかメールプログラムを使用する 2 つのネットワークを接続するものです。このシステムでは、sendmail がドメインで受信者を見つけられないアドレスのあるメールを処理します。メールゲートウェイがある場合、sendmail はこれを使用して、ドメイン外でメールの送受信を行います。

2 つのネットワーク間には、次の図に示すように内容の異なるメールプログラムを使ってメールゲートウェイを設定できます。この構成をサポートするには、メールゲートウェイシステムで sendmail.cf ファイルをカスタマイズする必要がありますが、これは困難で時間のかかる作業になる場合もあります。

図 26-1 異なる通信プロトコル間のゲートウェイ

この図は、異なるメールプログラムを使用する 2 つのメールゲートウェイを示しています。

メールゲートウェイを設定する場合に、必要とするものにもっとも近いゲートウェイ構成ファイルを見つけ、状況に合わせて修正する必要があります。

インターネットに接続できるマシンがある場合は、そのマシンをメールゲートウェイとして構成できます。メールゲートウェイを構成するときは、まずサイトのセキュリティ要件を慎重に考慮する必要があります。社内ネットワークを外部と接続するには、ファイアウォールゲートウェイを構築し、それをメールゲートウェイとして設定する必要がある場合があります。作業手順については、第 25 章「メールサービス (手順)」メールゲートウェイを設定する方法を参照してください。

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

メールサービスには、相互に対応する数多くのプログラムやデーモンが含まれています。ここでは、電子メールの管理に関連するファイル、プログラム、用語、および概念について説明します。

/usr/bin ディレクトリの内容

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

名前 

形式 

説明 

aliasadm

ファイル 

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

mail

ファイル 

ユーザーエージェント 

mailcompat

ファイル 

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

mailq

リンク 

/usr/lib/sendmail へのリンク。メールキューを表示するために使用

mailstats

ファイル 

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

mailx

ファイル 

ユーザーエージェント 

mconnect

ファイル 

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

praliases

ファイル 

別名データベースを表示するコマンド。praliases(1) のマニュアルページにあるコンパイルされていない情報を参照

rmail

リンク 

/usr/bin/mail へのリンク。メール送信だけに使用されるコマンド

vacation

ファイル 

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

/etc/mail ディレクトリの内容

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

名前 

形式 

説明 

Mail.rc

ファイル 

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

aliases

ファイル 

メール転送情報 

aliases.db

ファイル 

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

aliases.dir

ファイル 

メール転送情報のバイナリ形式 (newaliases の実行によって作成される)。まだ使用できるが、Solaris 9 ではデフォルトでは使用されない

aliases.pag

ファイル 

メール転送情報のバイナリ形式 (newaliases の実行によって作成される)。まだ使用できるが、Solaris 9 ではデフォルトでは使用されない

mailx.rc

ファイル 

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

main.cf

ファイル 

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

relay-domains

ファイル 

リレーを許容するすべてのドメインのリスト。デフォルトでは、ローカルドメインだけが使用できる 

sendmail.cf

ファイル 

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

submit.cf

ファイル 

メール送信プログラム (MSP) のための新しい構成ファイル。詳細は、新しい構成ファイル submit.cf を参照

local-host-names

ファイル 

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

helpfile

ファイル 

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

sendmail.pid

ファイル 

リスニングデーモンの PID をリストし、現在は /var/run にあるファイル

sendmail.st

ファイル 

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

subsidiary.cf

ファイル 

サブシステム用の構成ファイルの例 

trusted-users

ファイル 

特定のメール操作を実行するための信頼を与えられたユーザーをリストするファイル (各行 1 ユーザー)。デフォルトでは、root だけがこのファイルに入っている。信頼されていないユーザーが特定のメール操作を実行すると、X-Authentication-Warning: header being added to a message という警告が生成される

/usr/lib ディレクトリの内容

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

表 26-9 /usr/lib ディレクトリの内容

名前 

形式 

説明 

mail.local

ファイル 

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

sendmail

ファイル 

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

smrsh

ファイル 

sendmail|program 構文を使用して /var/adm/sm.bin ディレクトリにあるプログラムに対して sendmail を実行できるプログラムを制限するシェルプログラム (sendmail に限定されたシェル)。/var/adm/sm.bin に含める内容については、smrsh(1M) のマニュアルページを参照。有効にするには、この m4 コマンドと FEATURE(`smrsh') を mc ファイルに含める

/usr/lib/mail ディレクトリの内容

/usr/lib ディレクトリには、sendmail.cf ファイルを構築するために必要なすべてのファイルを含む mail というサブディレクトリがあります。表 26–10mail ディレクトリの内容を示します。

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

名前 

形式 

説明 

README

ファイル 

構成ファイルの説明 

cf

ディレクトリ 

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

cf/main.mc

ファイル 

以前は cf/main-v7sun.mc という名前のファイル 。メインの構成ファイル

cf/makefile

ファイル 

新しい構成ファイルを作成する場合の規則を提供する 

cf/submit.mc

ファイル 

メッセージを送信するためのメール差し出しプログラム (MSP) のための構成ファイル 

cf/subsidiary.mc

ファイル 

以前は 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

ディレクトリ 

localsmtpuucp などのメールプログラムの定義を含む

ostype

ディレクトリ 

各種のオペレーティングシステム環境の説明 

ostype/solaris2.m4

ファイル 

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

ostype/solaris2.ml.m4

ファイル 

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

ostype/solaris2.pre5.m4

ファイル 

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

ostype/solaris8.m4

ファイル 

ローカルメールプログラムを LMTP モードで mail.local に定義し、IPv6 を有効にし、sendmail.pid ファイルのディレクトリとして /var/run を指定する

sh

ディレクトリ 

m4 構築プロセスと移行補助に使用するシェルスクリプトを含む

sh/check-permissions

ファイル 

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

sh/check-hostname

ファイル 

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

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

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

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

名前 

形式 

説明 

sendmailvars.org_dir

テーブル 

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

/etc/default/sendmail

ファイル 

sendmail の起動スクリプトの環境変数をリストする

/etc/shells

ファイル 

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

/usr/sbin/editmap

ファイル 

sendmail のデータベースマップの単一のレコードに対してクエリーを実行して編集する

/usr/sbin/in.comsat

ファイル 

メール通知デーモン 

/usr/sbin/makemap

ファイル 

入力されたマップのバイナリ形式を構築する 

/usr/sbin/newaliases

リンク 

/usr/lib/sendmail へのリンク 。別名データベースのバイナリ形式を作成するために使用する。以前は /usr/bin にあった

/usr/sbin/syslogd

ファイル 

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

/usr/sbin/etrn

ファイル 

クライアント側リモートメールキューを起動するための Perl スクリプト 

/usr/dt/bin/dtmail

ファイル 

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

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

ファイル 

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

/var/spool/clientmqueue

ディレクトリ  

クライアントデーモンによって配信されるメールの記憶領域 

/var/spool/mqueue

ディレクトリ 

マスターデーモンによって配信されるメールの記憶領域  

$OPENWINHOME/bin/mailtool

ファイル 

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

/var/run/sendmail.pid

ファイル 

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

メールプログラム間の相互作用

メールサービスは以下のプログラムで構成され、図 26–2 のように作用します。

図 26-2 メールプログラム間の相互作用

図。

さらに詳しい図については、sendmail プログラムの機能 を参照してください。

以下に、メールプログラムの相互作用について説明します。

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

  2. メッセージは、メッセージを生成したプログラムにより収集され、sendmail デーモンに渡されます。

  3. sendmail デーモンがメッセージのアドレスを識別可能な各部に分割して解析します。sendmail デーモンは、/etc/mail/sendmail.cf という構成ファイルの情報を使ってネットワーク名の構文、別名、転送情報、およびネットワークトポロジを決定します。sendmail はこの情報を使用して、メッセージが受信者に到達する経路を決定します。

  4. sendmail デーモンはメッセージを適切なシステムに渡します。

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

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

sendmail プログラム

以下に、 sendmail プログラムの機能の一部を示します。

Solaris オペレーティング環境では、sendmail プログラムをメールルーターとして使用します。以下に、機能の一部を示します。

sendmail の詳細は、以下のトピックを参照してください。

sendmail とその再ルーティングメカニズム

sendmail プログラムでは、メールルーティングに必要な 3 つのメカニズムをサポートしています。適切なメカニズムは、変更の種類によって決まります。

さらに、選択する再ルーティングメカニズムによって必要な管理レベルが異なります。次のオプションを考慮してください。

  1. 別名再ルーティングメカニズム

    別名を使用すれば、使用するファイルの種類に基づいて、サーバー全体またはネームサービス全体をベースにしてアドレス名をマップできます。

    以下に、ネームサービスの別名の長所と短所を示します。

    • NIS や NIS+ などのネームサービス別名ファイルを使用すれば、メール再ルーティングの変更を単一のソースで管理できます。ただし、ネームサービスの別名指定では、再ルーティングの変更を伝達する際に遅延が起こります。

    • 通常、ネームサービスの管理は、特定のシステム管理者グループに制限されます。一般ユーザーは、このファイルを管理しません。

    以下に、サーバー別名ファイルを使用する際の長所と短所を示します。

    • サーバー別名ファイルを使用すれば、指定されたサーバーの root になることができる任意のユーザーが再ルーティングを管理できます。

    • サーバー別名指定は、再ルーティングの変更を伝達する際の遅延はほとんどありません。

    • 変更はローカルサーバーだけに影響します。ほとんどのメールが単一のサーバーに送信される場合は、影響が少なくなります。ただし、この変更を多くのメールサーバーに伝達する必要がある場合は、ネームサービスの別名指定を使用します。

    • 一般ユーザーは、この変更を管理しません。

    詳細は、この章の メール別名ファイルを参照してください。作業マップについては、第 25 章「メールサービス (手順)」メール別名ファイルの管理 (作業マップ)を参照してください。

  2. 次のメカニズムは、転送です。

    このメカニズムでは、ユーザーがメールの再ルーティングを管理できます。ローカルユーザーは、受信メールを以下の対象に再ルーティングできます。

    • 別のメールボックス

    • 別のメールプログラム

    • 別のメールホスト

    このメカニズムは、.forward ファイルによってサポートされます。.forward ファイルの詳細は、この章の .forward ファイルを参照してください。作業マップについては、第 25 章「メールサービス (手順)」.forward ファイルの管理 (作業マップ)を参照してください。

  3. 最後のメカニズムは、取り込みです。

    このメカニズムでは、root アクセス権を持たないユーザーも別名リストを保守できます。このメカニズムを提供するには、root ユーザーは、サーバー上の別名ファイル内に適切なエントリを作成する必要があります。このエントリが作成されると、ユーザーは必要に応じてメールをルーティングし直すことができるようになります。取り込みの詳細は、この章の /etc/mail/aliases ファイルを参照してください。作業マップについては、第 25 章「メールサービス (手順)」メール別名ファイルの管理 (作業マップ)を参照してください。

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

図 26-3 sendmail が別名を使用する方法

この図は、sendmail とその再ルーティングメカニズム (別名指定など) との依存関係を示しています。

sendmail プログラムの機能

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

図 26–4 には、sendmail がメールシステムで他のプログラムと相互作用する方法を示します。

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

この図は、sendmail と SMTP、uucp、vacation、mail.local、mailx などとの相互作用を示しています。

図 26–4 に示すように、ユーザーはメール作成プログラムおよびメール送信プログラムと対話できます。メール送信が依頼されると、メール生成プログラムは sendmail を呼び出し、sendmail は適切なメールプログラムにメッセージを送信します。発信者の一部はネットワークサーバーであったり、またメールプログラムの一部はネットワーククライアントであるため、sendmail は、インターネットメールゲートウェイとしても使用できます。このプロセスの詳細は、メールプログラム間の相互作用を参照してください。

sendmail 構成ファイル

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

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

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

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

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

  3. デーモンモードの代わりにメール送信プログラムモードで sendmail を実行するために使用する submit.cf という名前の構成ファイルの詳細は、新しい構成ファイル submit.cfを参照してください。

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

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

メール別名ファイル

別名を保守するには、以下のファイル、マップ、またはテーブルを使用します。

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

関連する作業については、第 25 章「メールサービス (手順)」メール別名ファイルの管理 (作業マップ)を参照してください。

.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 プログラムでその別名がバイナリ形式で使用できるようにします。作業手順については、第 25 章「メールサービス (手順)」ローカルメール別名ファイルを設定する方法を参照してください。それ以外の場合、Solaris 管理コンソールの「メーリングリスト」機能を使ってローカルの /etc ファイルに保存されているメール別名を管理できます。

別名を作成できるのは、ローカル名、つまり現在のホスト名に対してだけ、またはホスト名は指定できません。たとえば、システム saturn 上にメールボックスを持っているユーザー ignatz に対する別名エントリは、以下のエントリを /etc/mail/aliases ファイル内に持っています。


ignatz: ignatz@saturn

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

通常は、root ユーザーだけがこのファイルを編集できます。ただし、Administration を使用する場合は、sysadmin グループであるグループ 14 のすべてのユーザーが、ローカルファイルを変更できます。または、以下のエントリを作成します。


aliasname: :include:/path/aliasfile

aliasname は、ユーザーがメールを送信するときに使用する名前であり、/path/aliasfile は別名リストを含むファイルへの完全パスになります。別名ファイルには、各行に 1 つの電子メールエントリを入れ、その他の表記は付けないでください。


user1@host1
user2@host2

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


aliasname: /home/backup/filename

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


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

作業マップについては、第 25 章「メールサービス (手順)」メール別名ファイルの管理 (作業マップ)を参照してください。

NIS aliases マップ

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

NIS aliases マップの別名は、以下のようになります。


aliasname: value,value,value ...

aliasname は、ユーザーがメールを送信するときに使用する名前であり、value は有効な電子メールアドレスです。

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


aliasname: aliasname@host

aliasname はユーザーがメールを送信するときに使用する名前であり、host/etc/mail/alias ファイルを含むサーバー用のホスト名です。

作業手順については、第 25 章「メールサービス (手順)」NIS mail.aliases マップを設定する方法を参照してください。

NIS+ mail_aliases テーブル

NIS+ mail_aliases テーブルには、名前が含まれており、それによってローカルドメインにおけるシステムや個人が登録されています。sendmail プログラムは、ローカルの /etc/mail/aliases ファイルの代わりに NIS+ mail_aliases テーブルを使用して、メールアドレスを決定できます。詳細は、aliasadm(1M)nsswitch.conf(4) のマニュアルページを参照してください。

NIS+ mail_aliases テーブルの別名は次のようになります。


alias: expansion # ["options	" # "comments"]

表 26–12 に、NIS+ mail_aliases テーブルの 4 つの列を示します。

表 26-12 NIS+ mail_aliases テーブルの列

列 

説明 

alias

別名の名前  

expansion

sendmail/etc/mail/aliases ファイルに現れる別名の値または別名のリスト

options

今後の使用のために予約された列 

comments

個々の別名のコメントのための列 

NIS+ mail_aliases テーブルには、すべてのメールクライアントのエントリを含めてください。NIS+ aliases テーブルでは、aliasadm コマンドで、エントリの表示、作成、変更、および削除ができます。aliasadm コマンドを使用するには、aliases テーブルを所有する NIS+ グループのメンバーでなければなりません。作業手順については、第 25 章「メールサービス (手順)」NIS+ mail_aliases テーブルの別名エントリを管理する方法を参照してください。Solaris 管理コンソールの「メーリングリスト」機能を使用して NIS+ メール別名を管理することもできます。


注 -

新規の NIS+ aliases テーブルを作成する場合は、エントリを作成する前にテーブルを初期設定する必要があります。テーブルが存在するときは、初期設定は不要です。


.forward ファイル

ホームディレクトリに .forward ファイルを作成すれば、sendmail およびその他のプログラムは、メールのリダイレクトや送信にこのファイルを使用できます。以下の節を参照してください。

作業マップについては、第 25 章「メールサービス (手順)」.forward ファイルの管理 (作業マップ)を参照してください。

回避すべき状況

以下に、容易に回避または修復できる状況を示します。

.forward ファイルの内容

メール配信で .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 ファイル

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

CLIENTOPTIONS="string"

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

CLIENTQUEUEINTERVAL=#

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

ETRN_HOSTS="string"

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

MODE=-bd

sendmail を起動するためのモードを選択します。-bd オプションを使用するか、未定義のままにしておきます。

OPTIONS=string

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

QUEUEINTERVAL=#

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

QUEUEOPTIONS=p

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

メールアドレスとメールルーティング

配信時にメールメッセージが辿る経路は、クライアントシステムの設定とメールドメインのトポロジによって異なります。メールホストやメールドメインの各追加レベルでは、別名のもう 1 つの解釈を追加できますが、ルーティングプロセスは基本的にほとんどのホストで同じになります。

クライアントシステムは、メールをローカルに受信できるようにセットアップできます。メールをローカルで受信することは、ローカルモードでの sendmail の実行として知られています。すべてのメールサーバーと一部のクライアントでは、ローカルモードがデフォルトです。ローカルモードのメールサーバーまたはクライアントでは、メッセージは以下の要領でルーティングされます。


注 -

次の例では、sendmail.cf ファイルに設定されたデフォルトの規則を使用することを前提にしています。


  1. 可能な場合はメール別名を展開し、ローカルのルーティングプロセスを再起動します。

    ネームサービスでメール別名を確認し、見つかった場合に新しい値と置換することで、メールアドレスが展開されます。次にこの新しい別名が再度確認されます。

  2. メールがローカルの場合、/usr/lib/mail.local に配信されます。

    メールはローカルのメールボックスに配信されます。

  3. メールアドレスがこのメールドメインにホストを含んでいると、そのホストにメールを配信します。

  4. アドレスがこのドメインにホストを含んでいない場合、メールホストにメールを転送します。

    メールホストはメールサーバーと同じルーティングプロセスを使用しますが、メールホストはホスト名に加えて、ドメイン名が宛先になっているメールも受信できます。

sendmail とネームサービスの相互作用

ここでは、sendmail とネームサービスに適用されるドメイン名、ネームサービスを有効に利用するための規則、および sendmail とネームサービスの対話について説明します。詳細は、以下のトピックを参照してください。

関連する作業については、第 25 章「メールサービス (手順)」sendmail で DNS を使用する方法または メール別名ファイルの管理 (作業マップ)を参照してください。

sendmail.cf とメールドメイン

標準の sendmail.cf ファイルは、メールドメインを使ってメールを直接配信するか、あるいはメールホストを経由して配信するかを決定します。ドメイン内メールは直接 SMTP 接続経由で配信され、ドメイン間メールはメールホストに送られます。

セキュリティの高いネットワークでは、ほんの少数の選ばれたホストだけが、外部宛てのパケットを生成する権限を与えられています。ホストがメールドメインの外部のリモートホストの IP アドレスを持っている場合も、SMTP 接続の確立は保証されません。標準の sendmail.cf では次のことを仮定しています。

このように仮定すると、ドメイン間メールの配信または転送はメールホスト側の責任です。

sendmail とネームサービス

sendmail は各種の要件をネームサービスに課します。これらの要件の理解を深めるために、この節では、まずメールドメインからネームサービスドメインへの関係について説明し、次に個々の要件について説明します。以下を参照してください。

メールドメインとネームサービスドメイン

メールドメイン名はネームサービスドメイン名の接尾辞の 1 つでなければなりません。たとえば、ネームサービスのドメイン名が「A.B.C.D」ならば、メールドメイン名は次のうちのいずれかです。

メールドメイン名は、最初に設定されたときには、多くの場合ネームサービスドメインと同じになります。ネットワークが大きくなれば、ネームサービスドメインを小さく分割してネームサービスを管理しやすくすることができます。ただし、メールドメインは、一貫した別名を提供するために分割されないまま残ることがあります。

ホストネームサービスデータ

ここでは、sendmail がネームサービスに必要とする要件について説明します。

ネームサービスにおけるホストテーブルまたはマップは、次の 3 種類の gethostbyname() による問い合わせをサポートするように設定しなければなりません。

ネームサービス内に有効な sendmail サービスを確立するために、ホストネームサービスに追加された以下の 2 つの規則に従う必要があります。

gethostbyname() 関数については、gethostbyname(3NSL) のマニュアルページを参照してください。

sendmail と NIS との相互作用

以下に、sendmail と NIS との相互作用について説明し、ガイドラインを示します。

作業手順については、第 25 章「メールサービス (手順)」メール別名ファイルの管理 (作業マップ)を参照してください。

sendmail と NIS および DNS との相互作用

以下に、sendmail と NIS および DNS との相互作用について説明し、ガイドラインを示します。

作業手順については、第 25 章「メールサービス (手順)」sendmail で DNS を使用する方法メール別名ファイルの管理 (作業マップ)を参照してください。

sendmail と NIS+ との相互作用

以下に、sendmail と NIS+ との相互作用について説明し、ガイドラインを示します。

作業手順については、第 25 章「メールサービス (手順)」メール別名ファイルの管理 (作業マップ)を参照してください。

sendmail と NIS+ および DNS との相互作用

以下に、sendmail と NIS+ および DNS との相互作用について説明し、ガイドラインを示します。

作業手順については、第 25 章「メールサービス (手順)」メール別名ファイルの管理 (作業マップ)sendmail で DNS を使用する方法を参照してください。