MH-ALIAS(5)

NAME
mh-alias - MH エイリアス(別名)ファイル

SYNOPSIS
ほとんどの MH コマンド

DESCRIPTION
これは MH の個人エイリアス・ファイルと、
    /usr/local/lib/mh/MailAliases という(第一)エイリアス・ファイルの両方について述べたものです。 メッセージ転送システムで使われるエイリアス・ファイルについて述べたものでは ありません。 エイリアスファイルのそれぞれの行は以下の形式をしています。
    alias : address-group
または
    alias ; address-group
または
    < alias-file
または
    ; comment
上記のキーワードの意味は以下の通りです。
    address-group := address-list
               | "<" file
               | "=" UNIX-group
               | "+" UNIX-group
               | "*"
    address-list := address
               | address-list, address
エイリアス・ファイル中で、次の行に継続する行は、 直後に改行文字がある `\' で終ります。 上記で、alias-file と file は UNIX のファイル名です。 UNIX-group は /etc/group で記述のあるグループ名(または番号)です。 address は単に Internet 形式のアドレスです。 このファイルの中では、ファイル名を除いて、大文字小文字は区別されません。 `<' で始まる行は、`<' の後に書かれている名前のファイルが、 さらにエイリアス・ファイルとして読まれます。 このファイル読み込みは再帰的に行なわれますので、`<' は、 エイリアス・ファイルの最初に書いておけば期待される結果を得ます。 もし、address-group が `<' で始まる場合、 `<' の後に書かれている名前のファイルが読まれ、 その内容がそのエイリアスに対する address-list に追加されます。 もし address-group が `=' で始まる場合、 /etc/group ファイルが参照され、 `=' の後に書かれているグループ名が決められます。 そして、そのグループのメンバーに属している全てのログイン名が、 そのエイリアスに対する address-list に追加されます。 それに対して、もし address-group が `+' で始まる場合、 /etc/group ファイルが参照され、 `+' の後に書かれているグループ名のグループ番号が決められます。 そして、/etc/passwd ファイルの所属グループ番号が、 そのグループ番号と同じである全てのログイン名が、 そのエイリアスに対する address-list に追加されます。 もし address-group が単に `*' である場合、 /etc/passwd が参照され、 ユーザー番号がある特別な番号(通常 200)より大きな全てのログイン名が そのエイリアスに対する address-list に追加されます。 mh-tailor (5) の everyone の項も参照して下さい。 エイリアスについて、* が後ろに付いているものは、適切なものにマッチします。 (後述する例を参照) 配送の際のエイリアスの展開方法はだいたい次のような感じです (実際には完全にこの通りなのではありません)。
1) メッセージから配送されるべき全てのアドレスのリストを作り、 重複したアドレスを除きます。 2) もし、このドラフトがローカルホストで出来たものなら、 メッセージ中のこれらのアドレスで、 ホストが指定されてないものに関してエイリアス解決をします。 3) エイリアス・ファイルのそれぞれの行について、 "alias" が、全ての存在するアドレスと比較されます。 比較した際に、"alias" に一致したものはアドレス・リストから除かれます。 そして、その address-group のそれぞれのアドレスを、 それがまだリストにない場合は、追加します。 通常、alias 自身は出力されず、 その alias が指し示す address-group が代わりに出力されます。 しかし、もし "alias" が `:' の代わりに `;' で終わっている場合は、 "alias" とアドレスの両方が正しい形式で出力されます。 (MH エイリアスや個人エイリアスはメール転送システムに 知られていないので、これによって返送が可能になります。)
エイリアス・ファイルは一行ずつ順番に読まれるので、前方参照は可能ですが、 後方参照は認識されません。つまり再帰的ではありません。 エイリアスの定義にエイリアスを使う場合、 そのエイリアスは後から定義されなければならないという事です。 例:
</usr/local/lib/mh/BBoardAliases
sgroup: fred, fear, freida
b-people: Blind List: bill, betty;
fred: frated@UCI
UNIX-committee: <unix.aliases
staff: =staff
wheels: +wheel
everyone: *
news.*: news
最初の行はすぐに、さらなるエイリアスが /usr/local/lib/mh/BBoardAliases から 読まれるべきである事を意味します。 次の行は、"fred" は後に "frated@UCI" へのエイリアスとして 定義されていますので、"sgroup" は、"frated@UCI"、 "fear"、そして "freida" の三つの名前へのエイリアスです。

エイリアス "b-people" は "bill" と "betty" への 隠しリストです。 このメッセージはこれらのアドレスには送られますが、メッセージ・ヘッダーは 単に "Blind List: ;" となります (アドレスは書かれません)。

次に、"UNIX-committee" の定義はユーザーの MH ディレクトリに ある unix.aliases というファイルを読むように指定されています。 "staff" は /etc/group ファイルで "staff" グループの メンバーとして並べられている全てのユーザーと定義されてます。 そして、"wheels" は /etc/passwd のグループ番号が "wheel" グループと同じである全てのユーザーと定義されています。

最後に、"everyone" は /etc/passwd でユーザー番号が 200 より 大きい全てのユーザーと定義されています。 そして、"news.<なんでもいい>" という形式の全てのエイリアスは "news" と定義されています。 MH のエイリアスを理解するための鍵は、MH エイリアス・ファイルに 書かれているエイリアスが、配送されるメッセージのヘッダーへと展開されるという 事です。 このエイリアス展開は配送時の最初に、 メッセージ転送システムについて何も知らずに起こります。 これに対して、 一旦、メッセージ転送システムが、配送すべきメッセージを受けとると、 ローカルに見える全てのアドレスはシステムのエイリアス・ファイルが参照されます。 これらのエイリアスは配送されるメッセージのヘッダー自体は展開しません (エンベロープだけが展開されるという意味です)。 MH でエイリアス展開を速くするためには次のようにします。
まず、.mh_profile で、 エイリアスファイル名を選びます。例えば "aliases" なら、 次のような行を追加します。
Aliasfile: aliases
次に、MH ディレクトリ内に "aliases" というファイルを作ります。 最後に、"aliases" ファイルに適切なエイリアスを追加します。
/usr/local/lib/mh/MailAliases    第一エイリアス・ファイル
Aliasfile:    デフォルトのエイリアス・ファイル
ali(1), send(1), whom(1), group(5), passwd(5), conflict(8), post(8) 無し。 無し。 MH の以前のバージョンでは、 ただ一つのシステム・ワイドの mh-alias ファイルのみが使えました。 これは、システム管理者だけがエイリアスを定義出来るという点で、 多くの問題がありました。 従って、mh-alias の意味は、 複数の個人エイリアス・ファイルのサポートへと拡張されたのです。 MH のユーザーはもはや、システム・ワイドのエイリアス・ファイルの 情報保守のためにシステム管理者を煩わせる必要がなくなったのです。 何故なら、全ての MH ユーザーは、自分の意志で、 任意の数の個人エイリアス・ファイルを作成/更新/削除出来るのですから。 mh-alias は前方参照で再帰的ではないのですが、 "< alias-file" によって、これを克服できるかも知れません。 しかし、使えるファイル記述子の数は有限(しかもかなり少ない)なので、 無限再帰をすると、全てのファイル記述子を使い切った時、 意味のないエラーを出して止まってしまいます。

隠しリストに於いては、前方参照はうまく働きません。