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

印刷ビューの終了

更新: 2016 年 11 月
 
 

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

各メールサービスは、いくつかのソフトウェアコンポーネントを使用します。このセクションでは、次のソフトウェアコンポーネントについて説明します。

メールエージェント

メールサービスは次のエージェントを使用します。

メールユーザーエージェント – ユーザーと sendmail メール転送エージェント間のインタフェースとして機能するプログラムです。Oracle Solaris OS では、/usr/bin/mail および /usr/bin/mailx メールユーザーエージェントが提供されています。

メール転送エージェント – メールメッセージのルーティングとメールアドレスの解決を行います。このエージェントは、「メールトランスポートエージェント」とも呼ばれます。Oracle Solaris OS のデフォルトのメール転送エージェントは sendmail プログラムです。メール転送エージェントは次の機能を実行します。

  • メールユーザーエージェントからメッセージを受信する

  • 宛先アドレスを解決する

  • 適切な配信エージェントを選択してメールを配信する

  • ほかのメール転送エージェントからのメールを受信する

ローカル配信エージェント – メール配信プロトコルを実行するプログラムです。Oracle Solaris OS では、mail.local および procmail ローカル配信エージェントが提供されています。

メールプログラムと sendmail

メールプログラムは、sendmail 固有の用語です。メールプログラムは sendmail プログラムによって使用され、カスタマイズされたローカル配信エージェントまたはカスタマイズされたメール転送エージェントの特定のインスタンスを特定します。sendmail.cf ファイルに少なくとも 1 つのメールプログラムを指定する必要があります。sendmail プログラムは Simple Mail Transfer Protocol (SMTP) メールプログラムを使用します。 SMTP プロトコルでは、次のメールプログラムが定義されています。

smtp

ほかのサーバーへの標準 SMTP 転送機能を提供します

esmtp

ほかのサーバーへの拡張 SMTP 転送機能を提供します

smtp8

8 ビットデータを MIME に変換することなく、ほかのサーバーへの SMTP 転送機能を提供します

dsmtp

F=% メールプログラムフラグを使ってオンデマンド配信機能を提供します

メールボックスファイル

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

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

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

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

表 2  メールボックス名の書式についての規則
形式
説明
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 version 8 以降では、グループの別名に送信されるメールの封筒の送信者が変更されたことにより、別名に送信されたメールは、配信時に、別名の所有者から送信されたように見えます。この変更によって、メールエラーは、送信者に返送されるのではなく、別名の所有者に送信されるようになりました。次の別名のフォーマットは、この変更に関連したいくつかの問題に対応します。

mygroup: :include:/pathname/mygroup.list
owner-mygroup: mygroup-request
mygroup-request: john, bob

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

メール別名

別名とは、メールボックスの場所を割り当てたり、メールリストを定義したりするために使用できる代替名のことです。詳細は、メール別名ファイルの管理のタスクマップおよび メール別名ファイルを参照してください。

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

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

ローカルおよびドメインの両方で別名を使用する場合は、ループやデータベースの不整合が生じないようにしてください。また、あるシステムから別のシステムにユーザーを移動するときは、別名のループが生じないようにしてください。

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

john: john.smith
johns: john.smith
john.smith: john@mars

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

fred: fred@north

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

メール別名ファイルの作成と管理には、次の方法を使用できます。

  • NIS aliases マップ、または、ローカルの /etc/mail/aliases ファイルでグローバルな使用のためのメール別名を作成します。また、同じ別名ファイルを使用するメールリストを作成して管理することができます。

  • メールサービスの構成に応じて、NIS ネームサービスを使って別名を管理し、グローバルな aliases データベースを保持します。または、すべてのローカル /etc/mail/aliases ファイルを更新して、別名の同期を維持することもできます。

  • 自分だけが使用できるローカル ~/.mailrc ファイルか、だれでも使用できるローカル /etc/mail/aliases ファイルで、別名を作成して使用します。通常のユーザーは NIS 別名ファイルの作成や管理はできません。