MH のどうでもいいような趣味の講座


「MH 中級者以上向け〜どうでもいい(笑)ような趣味の講座」
 ◎第1章: MH のデフォルトファイル
MH数多くのメール関連 コマンドプログラムのパッケージであり、 その個々のプログラムは様々な機能を持ち、 また実行時には色々なオプションを指定して実行することが可能である。
ではその MH を「自分流」にカスタマイズするにはどうすればよいのか? 勿論、インストールディレクトリ変更等の根本的なカスタマイズ(?)であれば、 MH を make する際の MHconf (コンフィグファイル)で設定を変更して make し直せばよい。 本稿では、既に install された MH を、 ユーザが個人的に(ある程度)カスタマイズする方法を御紹介する。


● .mh_profile の設定例解説

これらの MH コマンドプログラムの、全体的なパラメータ指定や 個々のプログラムの動作時のスイッチやオプションは、 各自の ~ (Home Directory)の下にある、 MH に関する環境変数設定ファイルの .mh_profile と いうファイルで 予め指定 しておくことが可能である。(参照: man mh-profile(5))。

まずこの .mh_profile での設定について、 例えば ~/.mh_profile が以下の様になっているとして、説明をしよう。

.mh_profileの例
見ると判るように、1行に1つの設定が
profile-component: value
の形式で指定されている。
Path: Mail
これは "~/Mail" の下に、メールに関するファイル (メールのファイル自体 + この .mh_profile ファイル以外の MH の動作に関する設定ファイル) を置く設定
Folder-protect: 711
MH のメールフォルダディレクトリのアクセス権を設定
(「chmod 711」と同じ意味)
Msg-Protect: 600
同様に、個々のメールファイルについてのアクセス権の設定
Draft-Folder: drafts
書きかけのメールを ~/Mail/drafts というメールフォルダディレクトリに 収納するという設定
Signature: Haruhisa -`Mint'- Hayashi
メールの発信人ヘッダの一つである「From:」行のコメント部分の文字列の指定。 メール末等に挿入するシグネチャの指定ではないので注意。 例のように指定すると、 メールの From 行が、
「From: Haruhisa -`Mint'- Hayashi <hayashi@ariel10…>」
てな具合になる
ali: -alias .mh_aliases
send: -alias .mh_aliases
whom: -alias .mh_aliases
ali (list mail aliases), send (send a message), whom (report to whom a message would go) コマンドプログラムの -alias オプションの指定 (参照: man ali(1), send(1), whom(1))。
これらのコマンド実行時に使用する alias ファイルと して "~/Mail/.mh_aliases" というファイルを指定している。
inc: -audit audit-log -form inc.form
各自のメールスプールファイル (例: /var/spool/mail/$USER) からの メールの読み込みコマンドプログラム inc (incorporate new mail) についての 作動時オプション設定である。(参照: man inc(1))
-audit filename
~/Mail/filenameinc したログを残す設定
-form inc.form
「inc」コマンド実行時、どんなメールを inc したのかの情報 表示の formatに "~/Mail/inc.form" というファイルの設定を用いる、という指定
scan: -form scan.form
これも同様。指定したメールについて、1メールにつき1行で内容情報を 表示するプログラムの scan (produce a one line per message scan listing) 実行時の表示 format の指定。~/Mail/scan.form ファイルに指定した format で表示する。
Unseen-Sequence: unseen
MH では、各メールフォルダー毎に、そのフォルダーの色々な情報を記録しておく .mh_sequences というファイルを用いる。このファイルはそのメールフォルダー ディレクトリを読んだ際に自動的に作成・更新される。中身は以下の様なものが 書き込まれている。
cur: 111
このメールフォルダーでは、メール番号111 (111 というファイルに相当)に カレント (ポインタ) が来ている、ということを示している。 なにも設定しなくとも、この「現在のカレント位置」情報は自動的に残される。
そこで、この「Unseen…」オプションを設定すると、そのフォルダー にある「未読」のメール(番号)を
unseen: 308-311
というように、.mh_sequences ファイルに記録する。
Alternate-Mailboxes: hayashi@ariel10.kuic.koto-u.ac.jp,…
これは自分の他のアカウント{から|へ}のメールを、 「自分{から|へ}のメールである」と認識させる設定。「,」で繋げて記述する
これらの他にも様々な設定が可能なので、man mh-profile(5) や、 NutShell の「MH & xmh」本 [2] 等を参考にして下さい。

● comps ファイルの設定例解説

さて次に、メールを{新規に|返事として}作成する際のカスタマイズである。 MH の Lib dir (例: /usr/local/mh/lib など) にある components, distcomps, forwcomps, digestcomps, replcomps の各ファイルは、 メール作成時のヘッダ等のフォーマット(型)を定義するファイルである。 それぞれ comp (compose a message), dist (redistribute a message to additional address), forw (forward messages), forw -digest (forw コマンドに digest オプションをつけた時), repl (reply to a messages) コマンドプログラムに対する メール作成用フォーマット定義ファイルである。 (コマンド自身については、各々 man を参照のこと)

これを、カスタマイズしたければ、自分の MH の Path (.mh_profile で指定した Path。上記の例の場合、~/Mail) に そのファイルをコピーして変更し、 .mh_profile 等でオプション指定すればよい。

1. components ファイル

例えば "~/Mail/components" ファイルが以下の様になっているとする。

componentsファイルの例
これらは、作成するメールの「メールヘッダ」となるものである。
「Reply-To: hayashi@ariel10…」等の様に、既に記入されているものは そのまま使用されるが、 「To: 」等と、":"のあとが空白になっているものは、 コマンド実行時に 引数等で与えて指定する。

メールヘッダにどのような設定を行なえ何が有効なのか、 どのような設定をしてはいけないのか、については、 sendmail に関するある程度の知識を必要とする [3]。 また、場合によってつけた方がよいヘッダ等色々あるが、 ここでは簡単に、常時付けておくと便利なメールヘッダの指定のみを紹介する。

Reply-To: hayashi@ariel10.kuic.koto-u.ac.jp
Reply-To: ヘッダは、このメールに対して reply をする際の Replyアドレスの指定である。通常のメールハンドルプログラムでは、 返事を作成する際に、この Reply-To: ヘッダ→ From: ヘッダの順に 検索して返信アドレスを決定する
Errors-To: hayashi@kuic.koto-u.ac.jp
Errors-To: ヘッダは、このメールを送信した際に 何らかのエラーを起こした時の 戻りアドレス指定である
両ヘッダ共に「帰ってくる」アドレスに対する指定なので、 当然、誤った指定を行なわない様に、指定する際には充分注意が必要である。 最後の
Fcc: Fcc
Fcc: folder名」で、送ったメールとおなじものを、 自分の ~/MH-Path/folder名/ にも コピーしておくというオプション
ちなみにファイル最後の「--------」は、 MH でメールを作成する際に「ここまでメールヘッダ」を示すものである。 メールはヘッダ部とボディ部から構成されているテキストファイルであるが、 メールファイルの最初の空白行("\n")より前をヘッダ部、 後をボディ部と区分しているのである。 従って、メール作成時にもヘッダ部とボディ部の間に空白行を1行設けておく 必要があるのだが、MH では、取り敢えず「--------」として 境界を見易くしておいて、実際に送信する際にこの行を空白行に置換して 送るようになっている。

2. replcomps ファイル

これはややこしいので、mh-formatのセクションにて説明する。

3. のこりの comps ファイル

基本的には components や replcomps ファイルと同じである 上記以外のコマンドを使ってないので、デフォルトのままである。

ちなみに:-)、ホスト名抜きのアドレス等を上記のようにメールヘッダに 無理矢理入れるように設定しても、その WS の sendmail/sendmail.cf 等の 設定如何で、補完されたりちゃんと書き直されたりする場合もある。


© Haruhisa Hayashi 1992,1997,2000
気まぐれにより個々のファイル名を変えてしまう可能性もありますので、 Link/Bookmark される場合は、 %7Ehayashi/internet/mh_guide.html にお願いします。
目次へ 第0章へ 第1章へ 第2章へ 第3章へ
直接このファイルに飛んで来た場合… フレーム版メニューへ
by はやし はるひさ hayashi あっとまーく laic.u-hyogo.学術.日本