| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
wl-expire-alistの設定
次にwl-expire-alistの設定例を示します。このwl-expire-alist
の書き方一つで expire の実施方法が大きく変わりますので、慎重に設定してく
ださい。最初のうちはwl-expire-use-logを t にセットしておく
と良いでしょう。
(setq wl-expire-alist
'(("^\\+trash$" (date 14) remove)
;; 削除する。
("^\\+tmp$" (date 7) trash)
;; |
各リストの要素は
(フォルダの正規表現 削除メッセージの指定 削除先) |
となっています。リストの先頭からフォルダの正規表現にマッチするかど
うかを調べます。もし、フォルダの正規表現にマッチしないフォルダで、
expire を実行しても何もしません。また、2,3 番目の要素のいずれかが
nil であれば expire しません。
削除メッセージの指定には次のものを指定します。
(number n1 [n2])
n1 は削除後のメッセージ数で、 例えば値が 500 なら最新の 500 個を残して残りを削除することになります。
n2 は expire を実行するためのメッセージの総数で、省略すると n1 + 1 になります。例えば値が 510 ならメッセージが 510 以上のとき に expire を実行することになります。これは自動実行で expire を行うように した場合、頻繁にメールが来るフォルダでは毎回 expire を実行するようになる ので、メールを読むまでに時間がかかり、煩わしくなってしまいます。そこで n2 を n1 よりも大きめの値に設定することで、一定数溜まるまでは expire を実行しないようにできます。
また、wl-summary-expire-reserve-marksで指定したメッセージ(重要マー
クや新規・未読マークの付いたメッセージ)は削除しないようになっていますが、
もし、wl-expire-number-with-reserve-marks が non-nil の場合、この
ようなメッセージも含めて 500 個になるように expire します。nil
の場合は上記メッセージ以外で 500 になるように expire します。
(date d1)
d1 は現在より何日前のメッセージを削除するどうかであり、 例えば値が 7 なら 7日より前のメッセージを削除します。 なお、この日付とはメッセージの `Date:' フィールドの日付であり、 メッセージがフォルダに入った日付ではないことに注意してください。
もし、メッセージに `Date:' フィールドがなかったり、`Date:' フィー ルドが不正な値なら、expire されませんので手で削除するなりして下さい。
削除先には次のものを指定します。
remove
hide
trash
wl-trash-folder に移動します。
アーカイブフォルダを指定すると便利ですが、`$' マークの付いた重要メッ セージなどは移動されないので、下記の標準関数を使う方がより良いです。
指定した関数には次の3つの引数、フォルダ名、削除するメッセージのリスト、
そしてサマリの msgdb 情報が渡されます。また、関数名の後に関数独自の引数も
指定できます。なお、この関数にはwl-summary-expire-reserve-marksで
指定したメッセージも含んだリストが渡されますので、独自に関数を作る場合は
注意してください。
ここで指定できる関数には、標準で次の4つが用意されています。そのうち3つは指 定した方法でアーカイブフォルダにメッセージを移動するもので、古いメッセー ジをフォルダから削除しながら別ファイルに圧縮して保存しておくことができま す。残り1つはメッセージを MH フォルダに振り分けるものです。
wl-expire-archive-number1
wl-expire-archive-files を 200 にすると、`wl-00000.zip',
`wl-00200.zip', `wl-00400.zip', ... にリファイルしていきま
す。
リファイル先のアーカイブフォルダは削除元のフォルダ名に基づいて次のように
決定されます。(このとき、アーカイブフォルダは
elmo-archive-treat-file が non-nil の場合として扱われます)
例えば `+ml/wl' は `$ml/wl;zip' (`~/Mail/ml/wl-00100.zip')となります。
例えば、`%#mh/ml/wl' は `$imap4/#mh/ml/wl;zip' (`~/Mail/imap4/#mh/ml/wl-00100.zip')となります。
すなわち、localdir の場合は種別がパス名に含まれませんが、それ以外は種別
がパス名に含まれるのです。
また、wl-expire-archive-folder-prefix により、
アーカイブフォルダに付ける prefix を制御できます。
wl-expire-archive-folder-prefixの説明を良く見ておいてください。
wl-expire-archive-number2
`wl-expire-archive-number1'
と異なる点はメッセージ番号に関係なくアーカイブフォルダが指定数に達するまで
そのフォルダにリファイルする、という点です。
なお、リファイル先のアーカイブフォルダは wl-expire-archive-number1
と同じように決定されます。
wl-expire-archive-date
例えば、1998年12月のメッセージは $folder-199812;zip にリファイル
されます。なお、日付の部分以外のアーカイブフォルダ名は
wl-expire-archive-number1と同じように決定されます。
また、上記の3つの標準関数では wl-expire-alist での第1引数に
non-nil を指定すると、フォルダのメッセージ番号をそのまま保存できます。例
えば、次のように関数名の後に続けて指定します。
("^\\+ml/wl$" (number 300 310) wl-expire-archive-number1 t)
|
引数を指定しない場合は、各アーカイブフォルダごとに 1 から順に番号を与え て保存されます。
wl-expire-localdir-date