| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
elmo-split を使うと、変数 elmo-split-folder で指定したフ
ォルダ内のメッセージを特定の規則に従って procmail 風に振り分
けることができます。
この機能を使うには、まず `~/.emacs' に以下のように設定して下さい。
(autoload 'elmo-split "elmo-split" "Split messages on the folder." t) |
振り分け元のフォルダを以下のように設定します。
(setq elmo-split-folder "%inbox") |
振り分けのルールは変数 elmo-split-rule に記述します(書き方は後で
説明します)。
以上の設定をした上で M-x elmo-split すると elmo-split-rule
に従って振り分けを実行します。 C-u M-x elmo-split とすると実際には
振り分けはせずにリハーサルを行ない、その結果を表示します。
以下ではルールの記述の仕方を説明します。まずは次の例を見て下さい。
(setq elmo-split-rule
;; SPAM は `+junk' へ
'(((or (address-equal from "i.am@spammer")
(address-equal from "dull-work@dull-boy")
(address-equal from "death-march@software")
(address-equal from "ares@aon.at")
(address-equal from "get-money@richman"))
"+junk")
;; mule メーリングリストからのメールを `%mule' へ
((equal x-ml-name "mule") "%mule")
;; wanderlust メーリングリストからのメールを `%wanderlust' へ
;; そして続けてそれ以下の規則も評価する。
((equal x-ml-name "wanderlust") "%wanderlust" continue)
;; Yahoo 利用者からのメッセージを `+yahoo-{username}' へ
((match from "\\(.*\\)@yahoo\\.com")
"+yahoo-\\1")
;; マッチしなかった残りを `+inbox' へ
(t "+inbox")))
|
規則の基本単位は
(`CONDITION' `ACTION' [ |
の組で、`CONDITION' が真の場合に `ACTION' を実行します。
第一の要素 `CONDITION' には条件を S 式で記述します。書式については
すぐ後で説明します。第二の要素 `ACTION' にはメッセージの振り分け先
のフォルダ名、もしくはシンボルを指定します。
第三の要素 continue をシンボルとして与えると、`CONDITION' が
満たされた場合にも振り分け規則の評価を継続します。
`CONDITION' の記法は以下のようになります。実際の書き方は上で挙げた 例を参考にして下さい。
equal
match
\& や \N を含むことができます。
それらはその前の `値' で \(\) にマッチしたパターンに
置き換えられます。
address-equal
address-match
\& や \N を含むことができます。
それらはその前の `値' で \(\) にマッチしたパターンに
置き換えられます。
<
>
or
and
シンボルが指定されると、それを評価します。
`ACTION' の値として指定できるのは以下のいずれかです。
文字列が指定されるとそれを振り分け先のフォルダ名とみなして、そのフォルダ へメッセージを追加します。
シンボル `delete' が指定されると elmo-split-folder 内にある
メッセージの実体を削除します。
シンボル `noop' が指定された場合、そのメッセージに対しては何もせず、 そのままの状態に保ちます。
関数が指定された場合、それを実行します。
全ての振り分け規則を通過したメッセージは、変数
elmo-split-default-action で指定した `ACTION' に沿って処理さ
れます。