[mew-dist 29216] Cc:の中身次第でrefile
Yasushi
paf03637 at example.com
2010年 4月 30日 (金) 05:39:21 JST
mew-refile-guess-alist の記述についてご教授ください。なおLispはまったく
分かりません。
目的は、「友人Aと友人Bがいて、三人でメールを流すときと、直通で自分に来
る場合がある。回覧メールは"+nakama"フォルダに入れて、直通は"+from/friend_a"
に振り分けたい」ということです。
この場合、友人Aは直通で寄越すときにはCc:は空欄で、回覧の時はCc: に友人B
を入れて送ってきます。
infoのrefileでは、
> 規則は、以下のように書きます。
>
> rule ::= '<rule>
> <rule> ::= ((<key> <alist>) (<key> <alist>) ... [<special>])
>
> 全体は (<key> <alist>) のリストです。<key> はフィールド名を書きます。
> <alist> は以下のようになります。
>
> <alist> ::= (<value> <folder>|<rule>) (<value> <folder>|<rule>) ...
>
> <value> は <key> で示したフィールドにくる値です。<folder> は <key> にマッ
> チした際にどのフォルダに整頓するかを意味しています。<folder> の代りに
> <rule> を再帰的に記述することもできます。
>
> 特殊な <key> として `nil' と `t' があります。`nil' は、何も推測できなかっ
> た場合に返す <folder> を指定するために用います。`t' は、推測した値に加
> えて返す <folder> を指示するために使います。
>
> <special> ::= (t <folder>) | (nil <folder>)
>
となっているので、特殊<key> nil を使えないか、と思いました。
まず、
(setq mew-refile-guess-alist
'(
("From:"
("friend_a at example.com"
(("Cc:" ("friend_b at example.com" "+nakama") (nil "+from/friend_a"))))
)
)
)
とやると、失敗でした。アドレス friend_a at example.com はguess-alistの対象に
ならず、M-o で +inbox に残ります。
考えると nil は<key>ですから、
(setq mew-refile-guess-alist
'(
("From:"
("friend_a at example.com"
(("Cc:" ("friend_b at example.com" "+nakama"))))
)
(nil "+from/friend_a")
)
)
でなければいけない、という理解でいいですよね? こうすると 直通メール
は確かに +from/friend_a に refile されます。
しかし実際のmew-refile-guess-alistの記述はこの見本のように単純ではな
く、"To:" フィールドもあれば "Content-Type:" フィールドもあります。上
記の記述では、To: のところでも Content-Type: でもヒットしないメールが
全部 +from/friend_a フォルダに refile されてしまうはずです。
冒頭の目的を果たすためには、nil を使うという手ではだめなのでしょうか?
それとも、わたしがguess-alistの規則を理解できていないということなの
でしょうか。
恐れ入りますが、どなたか御指南ください。
まったく別のロジックで目的を果たす方法でも切望いたします。
どうぞよろしくお願いいたします。
----
Yasushi <paf03637 at example.com>
Mew-dist メーリングリストの案内