メールサーバで有効とされるメールID(メールアドレスの「@」の左に置かれる名前)には、そのメールサーバに登録されているユーザーアカウント名のほかにエイリアス(別名)があります。エイリアスは、ユーザーアカウント名、メーリングリストのファイル名、メールを処理するプログラム(メーリングリストプログラムを含む)の名前、または別のメールアドレスに対応付けられます。SMTPサービスプログラムとしてsendmailを使う場合は、エイリアス定義は/etc/aliasesファイル(システムによっては/etc/mail/aliasesのこともあります)に記述します。
ここでは、/etc/aliasesファイルの設定方法を説明します。必ず記述しなければならない定義がありますので、注意してください。
●必須のエイリアス
sendmailをインストールした時に作られる/etc/aliasesファイルには、以下の記述が入っています。
# Basic system aliases -- these MUST be present.
MAILER-DAEMON: postmaster
postmaster: root
|
これらは、MAILER-DAEMON(メール配送デーモン:sendmailデーモンのこと)宛に通知されたメールはpostmaster(郵便局長の意味)が受け取るべきこと、さらにpostmaster宛のメールはroot(システム管理者)が受け取るべきことを定義しています。これらは必須の定義ですから、消してはいけません。
また、この後にbin、daemonなどいくつかのエイリアスをrootに対応付ける定義が並んでいます。それらもそのままにしてください。
さらに、root宛のメールはシステム管理者の個人アカウント名に対応付けます。
# Person who should get root's mail
root: taro
|
ここで、taroはシステム管理者の個人アカウント名の一例です。複数人の場合は、次の例のように、コンマで区切って並べます。
# Person who should get root's mail
root: taro, hanako
|
この定義は
必ず書き加えなければなりません。さもないと、コンソールからrootでログインした時にしかroot宛のメールに気付くことができません。
root作業をするためには、rootでログインするのでなく、一般ユーザーアカウントでログインしてsuコマンドでroot権を持つようにすべきです。最近のUNIX系OSでは、セキュリティのために、ネットワークからはrootでログインできないようになっているのが普通です。
/etc/aliasesファイルの編集が終ったら、
を実行します。以降に述べる設定を行った場合も同じです。
●別のメールIDでメールを受け取るためのエイリアス定義
たとえば、taroというアカウントを持っている鈴木太郎さんがsuzukiというメールIDでもメールを受信したい場合は、以下のようにエイリアスを定義します。
ただし、当然、そのサーバにsuzukiというアカウントを持つ別人がいない場合に限られます。
●転送のためのエイリアス定義
そのサーバにアカウントがない人へのメールを受け取って転送するように設定することもできます。転出した人に届いたメールを新しい勤務先へ転送したい場合によく使われる方法です。例を示します。
jiro: jiro@anotherdomain.co.jp
|
●蓄積と転送を同時に行う方法
そのサーバにアカウントを持つ人に届いたメールを、その人のメールスプールに蓄積すると同時に別のアドレスへ転送することもできます。例を示します。
jiro: \jiro, jiro@anotherdomain.co.jp
|
ここでは、アカウント名jiroと同名のエイリアスjiroを定義していることになります。この場合、アカウント名には頭に「\」を付けて区別しなければなりません。これがないとエイリアスループ(エイリアス定義の堂堂巡り)になってしまいますので、ご注意ください。
しかし、実はこれは
危険です。jiroさんがこのサーバ上のアドレスを差出人アドレスとして自分宛にメールを送った時、転送先のメールサーバのトラブルなどで転送がエラーになると、その差し戻しがまた転送されようとしてエラーになるというループが起こるおそれがあります。特に、MAILER-DAEMON、postmaster、およびroot宛のメールを受ける人が別アドレスへの転送を仕掛けていると、エラーメールのループが起こる危険が大きくなります。
この問題を避けるには、やや面倒ですが、以下の方法をとることを強くお勧めします。
次のように記述したシェルプログラムファイルfw-jiro.sh(ファイル名は何でもかまいません)を作ります。
#!/bin/sh -
/usr/lib/sendmail -f owner-fw-jiro@mydomain.co.jp jiro@anotherdomain.co.jp
|
ここで、「mydomain.co.jp」はこのサーバのアドレスの例です。
シェルプログラムファイルのモードは次のようにしてください。
/etc/aliasesファイルでの定義は次のようにします(シェルプログラムファイルのディレクトリ位置は一例です)。
jiro: \jiro, "|/var/fw/fw-jiro.sh"
owner-fw-jiro: \jiro
|
このようにすれば、転送されるメールの差し戻し先はowner-fw-jiroとなり、これはアカウントjiroだけに対応付けられていますから、差し戻しはjiroさんのメールスプールだけに届き、もはやそれ以上転送されません。
●メーリングリスト
一つのエイリアスを複数の人のアドレスに対応付ける定義は、メーリングリスト(郵送先名簿の意味)として使えます。たとえば、以下のようなエイリアス定義を設定しておけば、ウェブサービスに関する問い合わせ窓口の担当者が代わっても、対外的な問い合わせ用アドレスは変えずにすみます。
webmaster: taro,
hanako,
jiro@anotherhost.mydomain.co.jp
|
この例のように、コンマの直後で改行して複数行にわたって書くこともできます。
たくさんのメンバーを収容するメーリングリストでは、一行に一アドレス(区切りのコンマは使いません)を書いたアドレスリストファイルを取り込むエイリアス定義が便利です。
friends: :include:/var/mlist/friends.list
|
この場合、登録アドレスに変更があってもアドレスリストファイル(この例では/var/mlist/friends.list)を修正するだけでよく、その都度newaliasesコマンドを実行する必要はありません。
メーリングリストをさらに便利にする方法については、
簡易メーリングリスト用GAWKスクリプトをご覧ください。