2010年4月30日

[mew-dist 29216]Cc:の中身次第でrefile

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@xxxxx"
(("Cc:" ("friend_b@xxxxx" "+nakama") (nil "+from/friend_a"))))
)
)
)

とやると、失敗でした。アドレス friend_a@xxxxx はguess-alistの対象に
ならず、M-o で +inbox に残ります。
 考えると nil は<key>ですから、

(setq mew-refile-guess-alist
'(
("From:"
("friend_a@xxxxx"
(("Cc:" ("friend_b@xxxxx" "+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@xxxxx>


投稿者 xml-rpc : 2010年4月30日 05:39
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/95456
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。