Emacs上でのMH(mh-e/mew)の使い方

  1. 準備 : 必要なファイル
  2. 起動
  3. mew
  4. トラブルシューティング


1.準備

ホームディレクトリーに以下のファイルが必要です。

        .mh_profile
内容は、
$ cat ~/.mh_profile
 Path: Mail
 Aliasfile: aliases
 Draft-folder: drafts
 Signature: Hanako YAMADA
第一行の、Path: Mail は*絶対必要*です。

第二行は、mh-mail のエイリアス用のファイルを指定しています。 aliaeses という名前のファイルを、 MH directory (この場合は ~/Mail) に置いて下さい。 (ファイルの名前は各自の好みで適当に変えて下さい。)

第三行は、ドラフトメッセージを作るディレクトリーの指定。

第四行は、メッセージヘッダーの From: に含める自分のサイン。

エディタなどを使って作成します。

注意:

通常の .mailrc でのエイリアスの定義は使えません。 address のエイリアスの形式は次のとおりです:
$ cat ~/Mail/aliases
 ope:	nakahara
 grp2:	cbs,fukuma,kuruma,matsu,mizo,ogura,\
	ryu,sawada,tada,uehara,watanabe,yamanaka,zen 
 mybit: nakahara@kusm.kyoto-u.ac.jp
● Emacs(Nemacs/Mule) の設定

.emacs における設定は以下の通りです。

---------
(cond ((boundp 'MULE)
     (define-program-coding-system nil "scan" *euc-japan*)
     (define-program-coding-system nil "inc" *euc-japan*)
     ))
----------
"*euc-japan*"の部分は 各自の coding の設定によって変えて下さい。



2.起動

Emacs の中からのメールシステム MH (Message Handling) の起動キーは

ESC x mh-rmail<enter>

です。

これで、新しいメールが来ていれば、そのリストが現れるはずです。

● メールを読む(、返事、印刷)

新しいメールが来ていて、上の方法でリストを見ているとします。 読みたいメールの行にカーソルを移動します。そこで . (ピリオド)を入力するとメールが読めます。

|*重要事項*:カーソルの移動は、Keyboard 右端の矢印 Key(4,8,6,2)で行なうか、
|              次のようなコントロールコードの入力で行ないます。
|
|                                 C-p (one line)
|                                  ↑
|C-a (left end)   C-b (one char) ←  → C-f (one char)   C-e (right end)
|                                  ↓  
|                                 C-n (one line)
その後必要なコマンドは以下の通りです。
     <SPC>       読んでいるメールのスクロールダウン
     <DEL>       読んでいるメールのスクロールアップ
       n         次のメールを読む。
       p         前のメールを読む。
       j         次に指定する番号のメールを読む。
       l         読んでいるメールの印刷(日本語入りもOK!)
       f         読んでいるメールを forward する。
       a         読んでいるメールに reply する。
       i         新しいメールが来たときリストに挙げる。
● メールを出す(、返事)

mh-rmail を起動している状態で、s(mh-smail コマンド) でメールが書き出せます。読んでいるメールの返事は、(もう一度書いておくと)

       .  (ピリオド)で読んだ後、 
       a   で返事(reply)できます。

|*注意: "a"  で reply をかけると、 "Reply to whom:" と聞いてきますが、
|        手紙の相手に返事する時(通常の時ですね)は、そのままリターンを
|        たたいて下さい。

|*裏技:その返事の手紙に、送られてきたメールの文章を(とりあえず全部)
|      取り入れるには、 a  で送信用のメールの画面になった後、
|
|           C-c C-y
|
|      と入力して下さい。
"a" で reply をかけると、通常の設定ではメールヘッダーに "Cc:" が付きませんが、自分でヘッダー部に "Cc:" を書き加えるか、 C-c C-f c を実行して下さい。 メールの(最後)に自分のサインを入れたければ、~/.signature というファイルにそのサインを書いておけば、メールを書いた時に

      C-c C-s
         (mh-insert-signatue)
で、~/.signature ファイルが挿入されます。

メールを出すのは、

      C-c C-c
        (mh-send-letter)
です。やめるときは、emacs の一般的なとり止めコマンドの "C-g" です。
● メールの整理

各メールにそれぞれ番号名のファイルとしてあります。

各メールは "folder" と呼ばれる ~/Mail 以下のサブディレクトリーに別々 に入れておくことができます。次のようなコマンドで、メールが整理できます。

   ^  (ハット)  読んでいるメールをフォルダーに入れる。(移動先
         フォルダー名をきかれるので好きな名前を入る。)
   d            読んでいるメールの消去
   x            上のコマンドを実行する。(mh-execute-commnads)     
   >            読んでいるメールをファイルに書き出す。
   M-l          folder のリストを表示する。
あるフォルダーのメールのリストを見たいときは、 M-f (mh-visit-folder) を実行して下さい。その後は inbox のときと同じです。 メールを d で消していくと番号に欠番ができてしまいます。それを 1 からの順番に付け替えるには、その folder のリストが出でいる画面で

  M-p
   (mh-pack-folder)
としてください。
● 終了 MH 自身は "q" を入力することで終了しますが、 emacs のバッファ にはそれまでのメールのリスト、メールの内容等が残ります。

emacs の各バッファを消すのは、 "C-x k" です。

emacs の終了でもちろん MH も終わります。

    C-x C-c         emacs の終了!
● その他 関連コマンド:

	$ ali     <== list the aliases
	$ from    <== see who sent me the mail
少し高級な技:

* .mh_profile の中に

inc: -audit inclog

の一行を入れておくと、inc したメールの情報が ~/Mail/inclog というファ イルに書き加えられていきます。このファイルは、ほっておくと inc する度 にどんどん大きくなっていくので適当な時期に自分で消すなどの処理をして下 さい。

* 自分の出すメールを常に自分にも送られるようにしたければ、出す時に 作られる

	To:
	cc:
	Subject:
	----------
の形式を変更して、例えば、

	To:
	cc:
	Bcc: nakahara
	Subject:
	----------
または、

	To:
	cc:
	Fcc: inbox
	Subject:
	----------
にすればよいわけです。そのためには、~/Mail/components というファイルに 上のように書いておけばいいです。 Bcc: のかわりに、 cc: にいつも自分を 加える場合は、他の人にも cc: する時のことを考えて、
	cc: nakahara,
と、コンマをつけておいた方がいいかも知れません。 上の方法はは、 reply のメールにつにては駄目です。 reply についても同様 にしたければ次のどちらかの方法をとって下さい:

1: .mh_profile に次の一行を加える。

	repl: -fcc inbox
2. 次の内容の ~/Mail/replcomps を作る。

ただし、6行目の "...Bcc: nakahara ..." は自分の ID にかえて下さい。

==== content of ~/Mail/replcomps =====
%(lit)%(formataddr %<{reply-to}%|%<{from}%|%<{sender}%|%<{return-path}%>%>%>%>)\
%<(nonnull)%(void(width))%(putaddr To: )\n%>\
%(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me))\
%<(nonnull)%(void(width))%(putaddr cc: )\n%>\
%<{fcc}Fcc: %{fcc}\n%>\
%<{date}Bcc: nakahara\n%>\
%<{subject}Subject: Re: %{subject}\n%>\
%<{date}In-reply-to: Your message of "\
%<(nodate{date})%{date}%|%(pretty{date})%>."%<{message-id}
             %{message-id}%>\n%>\
--------
==== end of ~/Mail/replcomps  ======



3.mewを使う
Mule 上で mew を使うことができます。

mew は mh(mail handler) を使った mule のプログラムで mh-e より一歩進んだものです。その使い方を簡単に述べます。

------------------------------------------------------------
設定 (mew:00install.jis より)
------------------------------------------------------------
(1 .mh_profile の確認)
MH を使っている人は、あまり設定をする必要がありませんが、以下の項目をチェッ
クして下さい。

* .mh_profile はありますか? 
        なければ一回 inc して下さい。
* .mh_profile には Path: Mail で始まる行がありますか?
        なければ追加して下さい。
* .mh_profile には Draft-Folder: drafts で始まる行がありますか?
        なければ追加して下さい。
* send に MIME 符号の機能を持たせましょう。
        send: -hencode
        whom: -hencode

* mh-6.8.3-JP.2c を使っていても scan & inc の表示が MIME 復号されない
場合は、.mh_profile
        inc:  -form scan.form
        scan: -form scan.form
を加えて下さい。次に、Mail/scan.form として以下の内容をコピーして下さ
い。(--- は含みません。以下同)

---
%4(msg)%<(cur)+%| %>%<{replied}-%|%<{encrypted}E%|\
%<(eq)%(trim{content-type})%<(amatch multipart)M%| %>%>%>%>\
%02(mon{date})/%02(mday{date})%<{date} %|*%>\
%<(mymbox{from})%<{to}To:%14(hdecode(friendly{to}))%>%>\
%<(zero)%17(hdecode(friendly{from}))%> \
%(hdecode{subject})%<{body}<<%{body}%>
---
(2. .emacs の設定)

mule において *scratch* バッファで

exec-path^J

(^J は control+J) 
を実行して下さい。exec-path の内容が表示されます。このとき、
/usr/local/bin/mh が含まれていなければ .emacs に次を加えて下さい。

---
(setq exec-path (cons "/usr/local/bin/mh" exec-path))
---

さらに、.emacs に

--------
(autoload 'mew "mew" nil t)
(autoload 'mew-read "mew" nil t)
(autoload 'mew-send "mew" nil t)
(setq mew-mail-domain "kusm.kyoto-u.ac.jp")
(setq mew-mule-charset-local *iso-2022-jp*)
(setq mew-mule-charset-spool *iso-2022-jp*)
--------

を加えて下さい。
------------------------------------------------------------
起動
------------------------------------------------------------
mule を立ちあげた状態で M-x mew とやると mail が来ている時は incing... と表示されて メイルのリストが表示されます。
mule -f mew
として立ちあげても同じです。 後は Space キーを押していけば、メイルの中身を見ることが できます。戻るのは Delete(bobcat を load 時は C-h) です。

返事を出す時は a を押せば出せます。元のメイルを リターンメイルに入れるには yank (C-c C-y) です。

また、refile するには o を押します。このとき、ミニバッファーに ... (+foldername)? と出ますので、そのままでよければリターンキーを、 そうでなければ folder の名前を入れます。 このリファイルの folder の名前は次のように指定できます。(.emacs)

--------
(setq mew-auto-folder-alist
    '(("To:"  ("rsnt"     . "+rsnt")
	      ("sakura"   . "+private/goma")
              ("ytsuchim" . "+private/docky"))
      ("Reply-To:"
              ("alg-geom" . "+duke")
	      ("auto-fms" . "+msri"))
      ("Subject:"
              ("test" . "+trash/test"))
      ("From:"("sakura"   . "+private/goma")
	      ("MAILER"   . "+Daemon")
	      ("postmaster" . "+Daemon")
              ("@niftyserve.or.jp" . "+nifty")
              ("MAILER-DAEMON" . "+Daemon")
	      ("ytsuchim" . "+private/docky")))
	     )
------
例えば Reply-To: フィールドに alg-geom を含むメイルは default で duke というフォルダーに格納されます。リファイルした情報は mew のシステムファイルに格納され、次回以降その設定が有効になります。

メイルの削除は d です。リファイルと削除は最後に x (eXecute) をしなければ 実際にはリファイルしません。

フォルダーを変えるのは g (Go) です。再度スキャンするのは s(Scan) です。

その他のコマンドについてはヘルプを見て下さい。




4.トラブルシューティング

------------------------------------------------------------
Q.とにかく送れない。
------------------------------------------------------------
今のところわかっているケースは次の通りです。

1.Bcc を使っている(Dcc を使って下さい)。



modified for html by
K. Yoshitomi(yositomi@kusm.kyoto-u.ac.jp)