メールシステムの管理

メール別名の作成

aliasadm コマンドを使用してユーザーのメール別名を作成できます。メール別名はドメイン内で一意でなければなりません。この節では、コマンド行を使用してメール別名テーブルから別名を検索する方法と、NIS+、NIS、DNS、またはローカルシステムのためにメール別名を作成する方法について説明します。

あるいは、admintool から Database Manager アプリケーション (Solaris とは別パッケージ) を使用して aliases データベース上でこれらの作業を行うことができます。

どの種類のファイルを使用するかは、別名を使用するユーザーおよび別名の変更ができるユーザーによって異なります。それぞれの種類の別名ファイルには、独自のフォーマット要件があります。これらについては、以下の節で説明します。

メール別名ファイル

下記の任意のファイルを使って、別名を管理できます。多くのサイトでは、これらのファイルは組み合わせて使用されます。

.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 ファイルの別名は、テキスト形式で格納されます。/etc/mail/aliases ファイルを編集するときに、newaliases プログラムを実行してデータベースを再コンパイルし、sendmail プログラムでその別名がバイナリ形式で使用できるようにします。あるいは admintool の Database Manager を使用して、ローカルの /etc ファイルに格納されているメール別名を管理できます。

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


aliasname: :include:/path/aliasfile

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


user1@host1
user2@host2

admintool でデータを変更するためのルートアクセスやアクセス権は与えずに、このファイルのアクセス権を変更して、複数のユーザーに別名を変更できるように許可できます。

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


aliasname: /home/backup/filename

注 -

すべてのメールファイルは、daemon で書き込めるようにする必要があります。他のユーザーがこのファイルにメールを配信できるようにするには、ファイルが特定のユーザーに所有され、グループ所有者は daemon で、ファイルのアクセス権が少なくとも 0620 になるように、アクセス権を設定してください。また別のプロセスにメールをルーティングすることも可能です。


以下のエントリは、メールメッセージのコピーを filename に格納し、コピーを出力します。


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

NIS 別名マップ

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

NIS 別名マップの別名は、以下のフォーマットに従います。


aliasname: value,value,value...

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

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


aliasname: aliasname@host

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

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"]

表 2-2 に 4 つの列を記載します。

表 2-2 NIS+ 別名テーブルの列

列 

説明 

alias

別名の名前 

expansion

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

options

将来の使用のために確保 

comments

個々の別名に関するコメント 

NIS+ mail_aliases テーブルには、すべてのメールクライアントにエントリを含めてください。NIS+ aliases テーブルでは、aliasadm コマンドで、エントリの表示、作成、変更、および削除ができます。あるいは admintool の Database Manager を使用して、NIS+ メール別名を管理できます。

新規の NIS+ 別名テーブルを作成する場合は、エントリを作成する前にテーブルを初期設定する必要があります。テーブルが存在するときは、初期設定は不要です。NIS+ mail_aliases テーブルの作成に関しては、「NIS+ mail_aliases テーブルの個々のエントリを表示する」 を参照してください。

aliasadm コマンドを使用するには、別名テーブルを所有する NIS+ グループのメンバーか、テーブルを作成したユーザーでなければなりません。

NIS+ mail_aliases テーブルの内容を表示する方法

aliasadm コマンドを使用するには、rootmail_aliases テーブルを所有する NIS+ グループのメンバー、またはテーブルを作成したユーザーでなければなりません。

NIS+ mail_aliases テーブルの全体の内容を表示する

    aliasadm -l と入力して Return キーを押します。

これにより、別名によるアルファベット順に別名テーブルの内容が表示されます。


注 -

大きな別名テーブルがある場合、全体の内容の表示には、やや時間がかかることがあります。特定のエントリを検索する場合は、grep 検索機能を使用して特定のエントリを探し出すことができるように、出力をパイプを通して grep コマンドに入力してください (aliasadm -l | grep entry)。


NIS+ mail_aliases テーブルの個々のエントリを表示する

    aliasadm -m alias と入力して Return キーを押します。

別名エントリが表示されます。

# aliasadm -m ignatz ignatz: ignatz@saturn 
# Alias for Iggy Ignatz

注 -

aliasadm -m オプションは、別名が完全に同じものだけを表示します。部分的に同じ文字列は表示しません。aliasadm -m オプションではメタキャラクタ (* および ? など) は使用できません。部分的に一致する文字列も表示したい場合は、aliasadm -l | grep partial-string と入力して Return キーを押してください。


コマンド行から NIS+ mail_aliases テーブルへ別名を追加する方法

まったく新しい NIS+ mail_aliases テーブルを作成する場合は、最初に NIS+ テーブルを初期設定しなければなりません。

NIS+ テーブルを初期設定する

    aliasadm -I と入力して Return キーを押します。

コマンド行から NIS+ mail_aliases テーブルに別名を追加する

  1. メールクライアント、メールボックスの位置、およびメールサーバーシステム名の各リストをコンパイルします。

  2. 任意のシステムで root になります。

  3. それぞれの別名について、aliasadm -a alias expanded_alias [options comments] と入力して Return キーを押します。

    これにより、別名が NIS+ mail_aliases テーブルに追加されます。


    # aliasadm -a iggy iggy.ignatz@saturn "Iggy Ignatz"
  4. aliasadm -m alias と入力して Return キーを押します。

    これにより、作成したエントリが表示されます。

  5. エントリが正しいことをチェックします。

NIS+ mail_aliases テーブルを編集してエントリを追加する方法

2 つまたは 3 つ以上の別名を追加する場合は、NIS+ テーブルを直接編集することもあります。

  1. メールクライアント、メールボックスの位置、およびメールサーバーシステムの名前の各リストをコンパイルします。

  2. 任意のシステムで root になります。

  3. aliasadm -e と入力して Return キーを押します。

    別名テーブルは、$EDITOR 環境変数で設定されているエディタを使って表示されます。変数が設定されていなければ、vi エディタが使用されます。

  4. 次のフォーマットを使ってそれぞれの別名を別の行に入力します。

    1. 任意の順序でテーブルの任意の位置に別名を入力します。

      順序は NIS+ mail_aliases 別名テーブルにおいては任意です。aliasadm -l コマンドがリストをソートし、それらをアルファベット順に表示します。

    2. フォーマット alias: expanded_alias # ["option"# "comments"] を使用します。

      オプション列をブランクにする場合は、空の引用符 2 つ ("") を入力し、次にコメントを追加します。

    3. Return キーを押すことにより、それぞれの行を終了させます。

  5. エントリが正しいことをチェックします。

  6. 変更を保存します。

NIS+ mail_aliases テーブルのエントリを変更する方法

  1. 任意のシステムで root になります。

  2. aliasadm -m alias と入力して Return キーを押します。

    別名の情報が表示されます。

  3. aliasadm -c alias expanded_alias [options comments] と入力して Return キーを押します。

    別名は、入力した新しい情報を使って変更されます。

  4. aliasadm -m alias と入力して Return キーを押します。

    作成したエントリが表示されます。

  5. エントリが正しいことをチェックします。

NIS+ mail_aliases テーブルからエントリを削除する方法

  1. 任意のシステムで root になります。

  2. aliasadm -d alias と入力して Return キーを押します。

    別名が NIS+ mail_aliases テーブルから削除されます。

NIS mail.aliases マップを設定する方法

NIS マスター上の /etc/mail/aliases ファイルには名前が含まれていて、それによってシステムまたは個人が登録されています。ローカル /etc/mail/aliases ファイルで一致するものがなければ、NIS マスターが検索されます。sendmail プログラムは、NIS マスターファイルを使用してメールアドレスを決定します。aliases(4) のマニュアルページを参照してください。

各システムのファイルを編集するか、またはあるシステムのファイルを編集し、それをほかの各システムにコピーできます。

別名の形式は次のとおりです。


name: name1, name2, ...

ローカル名またはドメインに対して別名を使用できます。たとえば、システム saturn にメールボックスがあり、ドメイン planets 内のユーザー fred の別名エントリでは、/etc/mail/aliases ファイルに次のエントリがあります。


fred: fred@planets

NIS mail.aliases マップを設定する

  1. メールクライアント、メールボックスの位置、およびメールサーバーシステムの名前の各リストをコンパイルします。

  2. NIS マスターサーバーで root になります。

  3. /etc/mail/aliases ファイルを編集し、次のようなエントリを作成します。

    1. メールクライアントごとにエントリを追加します。

    2. エントリ Postmaster: root をポストマスタとして指定された個人のメールアドレスに変更します。

      詳細は、「ポストマスタ別名を設定する方法」 を参照してください。

    3. メールサーバーの管理のためのメールボックスを作成した場合は、root:mailbox@mailserver のエントリを作成します。

    4. 変更を保存します。

  4. NIS マスターサーバーの /etc/hosts ファイルを編集し、メールサーバーごとにエントリを作成します。

  5. cd /var/yp と入力して Return キーを押します。

  6. make と入力して Return キーを押します。

    /etc/hosts/etc/mail/aliases ファイルでの変更が NIS スレーブシステムに転送されます。別名が有効になるのに、数分かかることがあります。

ローカルメール別名ファイルを設定する方法

ローカルシステムの /etc/mail/aliases ファイルには名前が含まれていて、それによってシステムまたは個人が登録されています。sendmail プログラムは、このファイルを使用してメールアドレスを決定します。aliases(4) のマニュアルページを参照してください。

ネットワークがネームサービスを実行していなければ、各システムの /etc/mail/aliases ファイルには、メールクライアントのすべてのエントリが入っていなければなりません。各システムのファイルを編集するか、またはあるシステムのファイルを編集し、それをほかの各システムにコピーできます。

別名の形式は次のとおりです。


name: name1, name2, ...

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


ignatz: ignatz@saturn

メールサーバーごとに管理アカウントを作成するとよいでしょう。root にメールサーバーのメールボックスを割り当て、/etc/mail/aliases ファイルに root 用のエントリを割り当てることにより作成できます。たとえば、システム saturn がメールボックスサーバーならば、/etc/mail/aliases ファイルにエントリ root: sysadmin@saturn を追加してください。

ローカルメール別名ファイルを設定する

  1. メールクライアントとメールボックスの位置の各リストをコンパイルします。

  2. メールサーバーで root になります。

  3. /etc/mail/aliases ファイルを編集し、次のようなエントリを作成します。

    1. メールクライアントごとにエントリを追加します。

    2. エントリ Postmaster: root をポストマスタとして指定された個人のメールアドレスに変更します。

      詳細は、「ポストマスタ別名を設定する方法」を参照してください。

    3. メールサーバーの管理のためのメールボックスを作成した場合は、root: mailbox@mailserver のエントリを作成します。

    4. 変更を保存します。

  4. newaliases と入力して Return キーを押します。

    これにより、sendmail が使用できるバイナリ形式で alias ファイルが作成されます。ファイルは、/etc/mail/aliases.dir/etc/mail/aliases.pag ファイルに格納されます。

  5. /etc/mail/aliases/etc/mail/aliases、および /etc/mail/aliases.pag ファイルを他の各システムにコピーします。

    3 つのファイルをすべてコピーしたら、newaliases コマンドをほかの各システムで実行する必要はありません。

    rcp または rdist コマンドを使用してファイルをコピーするか、またはこの目的のために作成したスクリプトを使ってファイルをコピーできます。メールクライアントを追加または削除するたびにすべての /etc/mail/aliases ファイルを更新しなければならないので注意してください。

DNS 別名ファイルを設定する方法

DNS ネームサービスは、個人の別名をサポートしません。メール交換 (MX) レコードおよび cname レコードを使用してホストまたはドメインの別名をサポートします。ホスト名またはドメイン名、またはその両方を DNS データベースで指定できます。DNS を管理する方法については、Solaris ネーミングの設定と構成 を参照してください。

DNS のルックアップで 2.5.1 sendmail を使用するときは、ご使用のシステムの /etc/nsswitch.conf ファイルにある hosts のエントリに dns を追加する必要があります。また、sendmail 構成ファイルの中でオプション I が定義されていることも確認しておく必要があります。デフォルトでは、オプション I は Solaris 2.5.1 オペレーティング環境で出荷される標準の構成ファイルに定義されています。

ご使用のシステムの /etc/nsswitch.conf ファイルの中に、Solaris 2.5.1 オペレーティング環境おいて他のアプリケーションで使用できるように hosts のエントリに dns がリストされていて、sendmail が DNS ルックアップを使用しないようにする場合には、このパッチで提供されるデフォルトの標準構成ファイルに定義されている OI 行をコメントアウトすることによって sendmail が DNS ルックアップを使用しないようにできます(以下の例を参照してください)。

例: 構成ファイルの OI をコメンアウトし、sendmail が DNS ルックアップを使用しないようにします。


# Turn on the DNS name look up
# OI

sendmail で DNS を使用する

  1. /etc/nsswitch.conf ファイルを編集して、ホストエントリに dns フラグが含まれていることを確認します。

    DNS のホスト別名が使用できるように、ホストエントリには dns フラグが含まれている必要があります。

  2. mailhost エントリをチェックします。

    DNS データベースに mailhost のエントリがあることを確認してください。

ポストマスタ別名を設定する方法

各システムは postmaster メールボックスにメールを送信できなければなりません。postmaster の NIS または NIS+ 別名を作成するか、または各ローカル /etc/mail/aliases ファイルでこれを作成できます。次に、デフォルトの /etc/mail/aliases エントリを示します。


# Following alias is required by the mail protocol, RFC 822 
# Set it to the address of a HUMAN who deals with this system's 
# mail problems. Postmaster: root

postmaster の別名を作成するには、各システムの /etc/mail/aliases ファイルを編集し、root をポストマスタとして機能する個人のメールアドレスに変更します。

ポストマスタがポストマスタメールと個人的メールとを区別するために、別のメールボックスを作成できます。別のメールボックスを作成する場合は、/etc/mail/aliases ファイルを編集するときに、ポストマスタのメールアドレスではなくメールボックスアドレスを使用してください。

postmaster 用に別のメールボックスを作成する

  1. postmaster として指定された個人のアカウントを作成し、アスタリスク (*) をパスワードフィールドに入れます。

  2. メールが配信されたら mail -f postmaster と入力して Return キーを押します。

    mail プログラムはメールボックス名を読んだり、書き込んだりできます。

postmaster メールボックスを別名に追加する

  1. 各システムで root になり、/etc/mail/aliases ファイルを編集します。

    ネットワークが NIS または NIS+ を実行しない場合は、/etc/mail/aliases ファイルを編集します。

  2. ポストマスタ別名を root から Postmaster: postmastermailbox@postmasterhost に変更し、その変更を保存します。

  3. ポストマスタのローカルシステムで、別名の名前 (たとえば、sysadmin) を定義する /etc/mail/aliases ファイルにエントリを作成し、ローカルメールボックスへのパスを入れます。

  4. newaliases と入力して Return キーを押します。

    あるいは、aliases ファイルで Postmaster: エントリを

    Postmaster: /usr/somewhere/somefile エントリに変更することもできます。