1日に数百のメールを受け取るようになると(え、そんなに受け取らないって?) 整理整頓が大変になります。Mew では、`o' でメールを整理する際に、整 頓先を推測しデフォルト値として表示してくれます。たとえば、次のようになり ます。
Folder name (+work/mew-dist): +
もし、() のなかのデフォルト値が自分の希望通りであれば、`RET' を押す だけでよいのです。整頓先が決定しているメールには、`o' マークが付き ます。
この整頓先の推測が賢ければ賢い程ユーザは楽になります。Mew では以下のよう なルールが用意されています。
ヘッダの情報を見ただけでは、整理先となるフォルダの候補は無限です。よって、 なんら手がかりのない状態で、メールから整頓先を決定するのは無理な話です。 しかし、フォルダ名の一覧は限りありますから、この中から整理先を選び出すこ とはそんなに難しいことではありません。
たとえば、+work/happy-networking というフォルダがあったとしましょう。 次のようなメールは、このフォルダに整頓すればよい可能性が高いといえます。
To: happy-networking@is.aist-nara.ac.jp
このように、To: や Cc: のアドレスが、フォルダ名の一番右側にマッチするも のがないか探すわけです。フォルダを階層化していない人が多いようですが、 Mew を使う限り、階層化しない手はありません。
さて、鋭い人は次の様なときに困るのではないかと思うでしょう。
To: simozono Cc: happy-networking@is.aist-nara.ac.jp
kazu は happy-networking の一員ですから、このメールが届きます。しかし、 simozono さんと仲がいいので ~/Mail の下の +simozono にマッチしてしまい ます。
そこで、Mew では無視するフォルダを設定できるようになっています。デフォル トでは、"~/Mail/from" 以下を無視します。ですから、個人からのメールは "~/Mail/from" に収めて下さい
候補が決定できたら
Folder name (+work/happy-networking): +
と訊いてきます。あっていれば `RET' を、違っていればお望みのフォルダ を入力して下さい。
`o' で新しいフォルダを指定すると、そのフォルダが自動的に作成され、 次からは推測用の候補にも加わります。便利でしょ?
この機能を提供する関数は `mew-guess-by-folder' です。
フォルダ名から推測する機能だけでは、思うようなフォルダを推測してくれない 場合があります。たとえば、
To: staff@is.aist-nara.ac.jp
と
To: staff@csce.kyushu-u.ac.jp
は、フォルダ名からの推測では同じフォルダ(たとえば、"+net/staff")が選ばれ てしまいます。そこで、Mew では、変数 `mew-auto-folder-alist' に明示 的にルールを設定できます。
1つ例を挙げてみましょう。
(setq mew-auto-folder-alist '(("To:" ("staff@is.aist-nara.ac.jp" . "+net/aist-nara/staff") ("staff@csce.kyushu-u.ac.jp" . "+net/kyushu-u/staff") )))
これは、メールヘッダ中の To: の横の文字列に staff@is.aist-nara.ac.jp が あれば +net/aist-nara/staff へ、staff@csce.kyushu-u.ac.jp があれば +net/kyushu-u/staff へ整頓するという意味です。
ルールは、以下のように書きます。
rule ::= '((<key> <alist>) (<key> <alist>) (<key> <alist>) ...)
全体は (<key> <alist>) のリストです。<key> はフィールド名を書きます。 <alist> は以下のようになります。
<alist> ::= (<value> . <folder>) (<value> . <folder>) ...
<value> は <key> で示したフィールドにくる値です。<folder> は <key> にマッ チした際にどのフォルダに整頓するかを意味しています。<value> と <folder> を `.' で区切るのを忘れないで下さい。
正規表現を知っている人は、以下のような複雑なルールを設定できます。
(setq mew-auto-folder-alist '(("Newsgroups:" ("^nifty\\.\\([^ ]+\\)" . "+Nifty/\\1") (".*" . "+rec/news")) ("To:" ("\\(inet\\|wide\\)@wnoc-fuk" . "+wide/\\1-wnoc-fuk")) ("From:" ("uucp@" . "+adm/uucp") ("ftpsync@" . "+adm/ftpsync"))))
この機能を提供する関数は `mew-guess-by-alist' です。
In-Reply-To: フィールドの Message-Id をたどり、親のメールがかつてどこに 整頓されたかによって推測する機能があります。
たとえば、Alice、Bob、Chris との間で、スキーに行こうという話題が盛り上がっ たので、+tmp/ski というフォルダを作って、そこに 整頓したとしましょう。以 降、3人の間のメールがきちんとした返答であるかぎり、+tmp/ski を推測してく れるでしょう。
Message-Id とフォルダの情報は、~/Mail/.mew-id-alist に保存されています。 あまりに増大するようであれば、bin/mew-refile を時々 cron で動かしておけ ばいいでしょう。
この機能を提供する関数は `mew-guess-by-message-id' です。
同じ From: フィールドを持つメールがかつてどこに refile されたかによって 推測する機能があります。
Alice がスキーのための宿の情報をメールしてきました。きちんとした返答メー ルではないので、Message-ID からの推測からでは正しく推測できません。しか し、+tmp/ski を選んで欲しいのが人情です。直前の彼女からのメールが +tmp/ski に整理されていれば、正しく +tmp/ski を推測してくれるでしょう。
その他、機械からくるメールは、いつも +adm/misc に入れることにしたい場合 なども、明示的なルールを書かずに済ませられます。
この機能を提供する関数は `mew-guess-by-from' です。
デフォルトの規則は、From: からユーザ名を切り出して、 `+from/username' を選ぶようになっています。関数名は、 `mew-guess-by-default' です。
ルールの順番は、`mew-refile-folder-guess-functions' に定義します。 先に書いた関数から順に実行され、フォルダが推測された時点で終了します。
Mew は、`mew-refile-folder-guess-functions' を以下のように宣言して います(宣言なので `defvar' が使われています)。
(defvar mew-refile-folder-guess-functions '( mew-guess-by-alist mew-guess-by-folder mew-guess-by-message-id mew-guess-by-from mew-guess-by-default))
ちなみに、著者の設定は以下のようになっています(このように、.emacs での設 定には `setq' を使って下さい)。
(setq mew-refile-folder-guess-functions '( mew-guess-by-alist mew-guess-by-folder mew-guess-by-default ))
Go to the first, previous, next, last section, table of contents.