[Contents]   [Back]   [Prev]   [Up]   [Next]   [Forward]  


指定したルールから推測

フォルダ名から推測する機能だけでは、思うようなフォルダを推測してくれない 場合があります。たとえば、To: が staff@mew.org であるメッセージと To: が staff@iijlab.net であるメッセージに対し、フォルダ名からの推測では同 じフォルダ(たとえば、"+net/staff")が選ばれてしまいます。そこで、Mew では、 変数 `mew-refile-guess-alist' に明示的にルールを設定できます。

1つ例を挙げてみましょう。

(setq  mew-refile-guess-alist
  '(("To:"
      ("staff@mew.org" . "+net/mew/staff")
      ("staff@iijlab.net" . "+net/iijlab/staff")
     )))

これは、メッセージヘッダ中の To: の横の文字列に staff@mew.org があれば +net/mew/staff へ、staff@iijlab.net があれば +net/iijlab/staff へ整頓す るという意味です。

ルールは、以下のように書きます。

rule ::= '((<key> <alist>) (<key> <alist>) (<key> <alist>) ...)

全体は (<key> <alist>) のリストです。<key> はフィールド名を書きます。 <alist> は以下のようになります。

<alist> ::= (<value> . <folder>|<rule>) (<value> . <folder>|<rule>) ...

<value> は <key> で示したフィールドにくる値です。<folder> は <key> にマッ チした際にどのフォルダに整頓するかを意味しています。<value> と <folder> を `.' で区切るのを忘れないで下さい。<folder> の代りに <rule> を再 帰的に記述することもできます。

特殊な <key> として `nil'`t' があります。`nil' は、何 も推測できなかった場合に返す <value> を指定するために用います。`t' は、推測した値に加えて返す <value> を指示するために使います。

正規表現を知っている人は、以下のような複雑なルールを設定できます。

(setq mew-refile-guess-alist
  '(("Newsgroups:"
    ("^nifty\\.\\([^ ]+\\)" . "+Nifty/\\1")
    (".*"         . "+rec/news"))
   ("To:"
    ("\\(inet\\|wide\\)@wnoc-fuk" . "+wide/\\1-wnoc-fuk"))
   ("From:" 
    ("uucp@"      . "+adm/uucp")
    ("ftpsync@"   . "+adm/ftpsync"))
   (nil . "+unknown")))

この機能を提供する関数は `mew-refile-guess-by-alist' です。


[Contents]   [Back]   [Prev]   [Up]   [Next]   [Forward]