[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.2.1 wl-expire-alistの設定

次にwl-expire-alistの設定例を示します。このwl-expire-alist の書き方一つで expire の実施方法が大きく変わりますので、慎重に設定してく ださい。最初のうちはwl-expire-use-logt にセットしておく と良いでしょう。

 
(setq wl-expire-alist
      '(("^\\+trash$"   (date 14) remove)
                                  ;; 削除する。
        ("^\\+tmp$"     (date 7) trash)
                                 ;; wl-trash-folder にリファイルする。
        ("^\\+outbox$"  (number 300) "$outbox;lha")
                                     ;; 特定のフォルダにリファイルする。
        ("^\\+ml/tmp$"  nil)
                        ;; expireしない
        ("^\\+ml/wl$"   (number 500 510) wl-expire-archive-number1 t)
                           ;; 番号ごとにアーカイブする(番号は保持する)。
        ("^\\+ml/.*"    (number 300 310) wl-expire-archive-number2 t)
                           ;; 一定数ごとにアーカイブする(番号は保持する)。
        ("^\\+nikki$"   (date 30) wl-expire-archive-date)
                           ;; 年月ごとにアーカイブする(番号は保持しない)。
        ))

各リストの要素は

 
(フォルダの正規表現  削除メッセージの指定  削除先)

となっています。リストの先頭からフォルダの正規表現にマッチするかど うかを調べます。もし、フォルダの正規表現にマッチしないフォルダで、 expire を実行しても何もしません。また、2,3 番目の要素のいずれかが nil であれば expire しません。

削除メッセージの指定には次のものを指定します。

(number n1 [n2])
フォルダにあるメッセージ数に応じて削除を行います。

n1 は削除後のメッセージ数で、 例えば値が 500 なら最新の 500 個を残して残りを削除することになります。

n2 は expire を実行するためのメッセージの総数で、省略すると n1 + 1 になります。例えば値が 510 ならメッセージが 510 以上のとき に expire を実行することになります。これは自動実行で expire を行うように した場合、頻繁にメールが来るフォルダでは毎回 expire を実行するようになる ので、メールを読むまでに時間がかかり、煩わしくなってしまいます。そこで n2n1 よりも大きめの値に設定することで、一定数溜まるまでは 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 に移動します。

string(folder)
メッセージをstringで指定したフォルダに移動します。

アーカイブフォルダを指定すると便利ですが、`$' マークの付いた重要メッ セージなどは移動されないので、下記の標準関数を使う方がより良いです。

function
指定の関数を呼び出します。

指定した関数には次の3つの引数、フォルダ名、削除するメッセージのリスト、 そしてサマリの msgdb 情報が渡されます。また、関数名の後に関数独自の引数も 指定できます。なお、この関数にはwl-summary-expire-reserve-marksで 指定したメッセージも含んだリストが渡されますので、独自に関数を作る場合は 注意してください。

ここで指定できる関数には、標準で次の4つが用意されています。そのうち3つは指 定した方法でアーカイブフォルダにメッセージを移動するもので、古いメッセー ジをフォルダから削除しながら別ファイルに圧縮して保存しておくことができま す。残り1つはメッセージを MH フォルダに振り分けるものです。

wl-expire-archive-number1
削除対象のメッセージ番号に対するアーカイブフォルダにリファイルします。例 えば、102 番であるなら `wl-00100.zip'、390 番であるなら `wl-00300.zip'、などのようにです。なお、 wl-expire-archive-files を 200 にすると、`wl-00000.zip', `wl-00200.zip', `wl-00400.zip', ... にリファイルしていきま す。

リファイル先のアーカイブフォルダは削除元のフォルダ名に基づいて次のように 決定されます。(このとき、アーカイブフォルダは elmo-archive-treat-file が non-nil の場合として扱われます)

フォルダタイプがlocaldirの場合
`ArchiveDir/foldername-xxxxx.zip'

例えば `+ml/wl' は `$ml/wl;zip' (`~/Mail/ml/wl-00100.zip')となります。

フォルダタイプがlocaldir以外の場合
`ArchiveDir/foldertype/foldername-xxxxx.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
メッセージの日付(年月)ごとに、例えば、`+ml/wl/1999_11/', `+ml/wl/1999_12/' といった MH フォルダにリファイルします。



This document was generated by Yuuichi Teranishi on February, 19 2005 using texi2html