名称
mh−alias − MH メッセージシステム用の別名(alias)ファイル
形式
すべての MH コマンド
解説
ここでは、MH の個人用別名ファイルと メール配送のための(一次)別名ファイル、すなわち、
/usr/new/lib/mh/MailAliases
について解説します。メッセージ転送システムで使用される 別名ファイルについては説明しません。 別名ファイルの各行は、次のようなフォーマットです。
alias : address−group
もしくは
alias ; address−group
もしくは
< alias−file
ここで
address−group := address−list
| “<” file
| “=” UNIX−group
| “+” UNIX−group
| “∗”
address−list := address
| address−list, address
別名ファイルでは、ニューラインの前に ‘\’ を置くことにより 行を継続することができます。
alias−file と file は、UNIX のファイル名です。 UNIX−group は、/etc/group に登録されているグループ名 (もしくは番号)です。 address には、“単純な” インターネット形式のアドレスを用います。 このファイルにおいては、alias−file の名称として用いられる場合を除いて、 大文字/小文字は区別されません。
‘<’ で始まる行では、それに続くファイルがさらに読み込まれ、 新たに別名が定義されます。 読み込みは回帰的に行われるので、 ‘<’ が別名ファイルの始まりに現われても期待される結果が得られます。
address−group が ‘<’ で始まる場合には、 それに続くファイルが読み込まれ、別名の address−list に加えられます。
address−group が ‘=’ で始まる場合には、 /etc/group ファイルが ‘=’ に続く UNIX−group で検索されます。 グループのメンバである各ログイン名は、 別名の address−list に加えられます。
これに対して、address−group が ‘+’ で始まる場合には、 /etc/group ファイルは ‘+’ の後の UNIX−group のグループID を調べるために 検索されます。/etc/passwd ファイルの中から、 このグループによって示されるグループID を持つ各ログイン名が捜し出され、 別名の address−list に加えられます。
address−group が単に ‘∗’ である場合には、 /etc/passwd ファイルが検索され、 マジックナンバー(通常は 200)よりも大きいユーザID を持つ すべてのログイン名が別名の address−list に加えられます。
マッチングにおいて、別名の末尾の ∗ は、適切なもの全てを含みます (下の例を参照してください)。
ポスト時における別名の解釈は、およそ次のようになります (実際にはこのようにはなりません)。
1) 送出されるメッセージのアドレスリストを、 重複するアドレスを消去しながら、作成します。
2) このドラフトがローカルホストから発信するものであれば、 メッセージ中のアドレスでホストを指定していないものについて、 別名の分析を行います。
3)別名ファイルの各行について、“alias” を既存のアドレス全てと 比較します。一致するものがあれば、 その “alias” をアドレスリストから取り除きます。 もし、リストに既存の “alias” がない場合には、 address−group の新しいアドレスをアドレスリストに加えます。 普通、別名自身は出力されません。 むしろ、その alias でマッピングしている address−group が代りに出力されます。 “alias” が ‘:’ の代わりに ‘;’ で終わっていても、 “alias” とアドレスの両方は正しいフォーマットで出力されます (この仕様により返信が可能になっています。 これは、MH の別名とパーソナルな別名は、 メール転送システムからは識別できないためです)。
別名ファイルは行単位に読まれるので、 前方へ(ファイルの終端へ向かって)の参照はできますが、 後方への参照は認められません。 そのため、回帰は起こりません。
例:
</usr/new/lib/mh/BBoardAliases
sgroup: fred, fear, freida
fred: frated@UCI
UNIX−committee: <unix.aliases
staff: =staff
wheels: +wheel
everyone: ∗
news.∗: news
第1行では、それ以上の別名を その場で /usr/new/lib/mh/BBoardAliases ファイルから 読み込むことを指示しています。 続く “fred” は、“frated@UCI” の別名として定義されています。 さらに、“sgroup” は “frated@UCI”、 “fear”、そして、“freida” の別名として定義されています。 つぎに、“UNIX−committee” の定義が、 ユーザの MH ディレクトリのファイル unix.aliases を読むことで 与えられます。 “staff” は、/etc/group ファイル中に グループ “staff” のメンバとして登録されている すべてのユーザとして定義されます。 そして “wheel” は、/etc/passwd の中で グループID が “wheel” グループと同じであるすべての ユーザとして定義されます。 最後の “everyone” は、/etc/passwd 中で 200 より大きい ユーザID を持つすべてのユーザとして定義され、 “news.<anything>” の形式をもつすべての別名は、 “news” として定義されます。
MH における別名を理解するために肝要な点は、 MH の別名ファイルで定義されている別名が、 ポストされたメッセージのヘッダにまで拡張されるということです。 この別名付けはポストすると最初に行われ、 メッセージ転送システムは関知しません。 これに対して、リスト中のアドレスに配送するよう、 メッセージ転送システムにメッセージ が与えられると、 ローカルなアドレスそれぞれについて、 システム全体の別名ファイルが検索されます。
役に立つヒント
簡単に MH で別名を定義するには、次のようにしてください。
まず “aliases” と呼ばれる最初の別名ファイルのための名前を選ぶために、 ユーザの .mh_profile に、次の 3 行を加えてください。
ali: −alias aliases
send: −alias aliases
whom: −alias ailases
次にユーザの MH ディレクトリに ファイル “aliases” を作ってください。
さらにこの “aliases” ファイルに適切な別名を加えてください。
関連ファイル
^/usr/new/lib/mh/MailAliases一次別名ファイル
プロファイルコンポーネント
なし
関連事項
ali(1), send(1), whom(1), group(5), passwd(5), conflict(8), post(8)
デフォルト値
なし
環境
なし
歴史
これまでの MH では、システム全体に対する別名ファイルが 1つ サポートされているだけでした。 したがって、メールシステムの管理者だけしか別名を定義(削除)できず、 多くの問題を起こしました。 しかしながら、MH の別名の意味解釈の機能が拡張され、 個人用な別名ファイルがサポートされるようになりました。 MH ユーザは、任意の数の個人用ファイルに別名の作成、 修正、削除をすることができるので、 システム全体の別名ファイルの中に情報を保存するために、 メールシステムの管理者の手をわずらわせる必要がなくなりました。
バグ
mh−alias ファイルの前方参照による意味解釈は再帰を防いでいますが、 “< alias−file” コマンドはこれを無効にする可能性があります。 ファイル記述子の数は有限(しかも、かなり)なので、無限回帰に陥ると、 すべての fbs を使いきったときに意味のない診断を出して終了します。
NEWS-OSRelease 3.3