memo.xight.org

日々のメモ

Mew 4 系を使用してみる

bsfilter を mew version 4 から使う

  http://bsfilter.org/mew.html

Bogofilter, Spamassassin を使う

  http://www.mew.org/release/info/mew_85.html.ja#SEC85

全部のフォルダの .mew-summary を一気に更新する

(setq mew-touch-folder-p t)
(setq file-writable-p t)

(defun mew-make-cache-all (&optional arg)
  ".mew-cache を一気に作る"
  (interactive "P")
  (let ((fldlst (mapcar 'car mew-local-folder-alist))
    (mew-summary-mode-hook nil)
    (font-lock-mode nil)
    (font-lock-support-mode nil)
    fld)
    (while (setq fld (car fldlst))
      (condition-case err
      (mew-make-cache arg (directory-file-name fld))
    (error nil))
      (setq fldlst (cdr fldlst))))
  (mew-summary-visit-folder mew-inbox-folder)
  (message "Make .mew-cache done")
  (mew-summary-quit))

(defun mew-make-cache (arg fld)
  (if (or (mew-folder-virtualp fld)
      (and (fboundp 'mew-nmz-skip-folder) (mew-nmz-skip-folder fld))
      (not (mew-dir-messages (mew-expand-folder fld)))
      (and (not arg) (not (mew-make-folder-dir-newp fld))))
      (message "no Make %s" fld)
    (message "Make %s in %s ..." mew-summary-cache-file fld)
    (let ((mew-summary-mode-hook nil)
      (mew-scan-sentinel-hook nil)
      (mew-scan-wait-for 0))
      (mew-summary-visit-folder fld)
      (font-lock-mode -1)
      (while mew-summary-buffer-process
    (sit-for 0.5)
    (discard-input))
      (message "Make %s in %s ...done" mew-summary-cache-file fld))))

(defun mew-make-folder-dir-newp (fld)
  (let* ((dir (file-chase-links (mew-expand-folder fld)))
     (tdir (if mew-touch-folder-p
           (mew-file-get-time
            (expand-file-name mew-summary-touch-file
                      (mew-expand-folder dir)))
         (mew-file-get-time dir)))
     (cache (expand-file-name mew-summary-cache-file dir))
     (tcache (mew-file-get-time cache))
     t1 t2)
    (setq t1 tdir)
    (setq t2 tcache)
    (cond
     ((null t1)
      (if mew-touch-folder-p
      (if (and (file-writable-p (expand-file-name mew-summary-touch-file
                              (mew-expand-folder dir)))
           (mew-dir-messages (mew-expand-folder dir)))
          (progn (mew-touch-folder fld) t)
        nil)
    nil))
     ((null t2) t) ;; do update
     ((> (nth 0 t1) (nth 0 t2)) t)
     ((= (nth 0 t1) (nth 0 t2))
      (if (> (nth 1 t1) (nth 1 t2)) t nil)) ;; nil if equal
     (t nil))))

  [mew-dist 21213] Re: mew-summary-ls-all-folders
  http://www.mew.org/ml/mew-dist-2.0/msg02983.html
  Mew Wiki - Mew4FAQ - 全部のフォルダの .mew-summary を一気に更新したい
  http://www.wikiroom.com/mew/?Mew4FAQ#content_1_20

Reference

  Mew Official Homepage
  http://www.mew.org/
  Mew Wiki
  http://www.wikiroom.com/mew/
  bsfilter / bayesian spam filter / ベイジアン スパム フィルタ
  http://bsfilter.org/
Debian パッケージディレクトリ検索 (バイナリ) - mew
Debian パッケージディレクトリ検索 (バイナリ) - mew-bin
Debian パッケージディレクトリ検索 (バイナリ) - mew-beta
Debian パッケージディレクトリ検索 (バイナリ) - mew-bin-beta
Debian パッケージディレクトリ検索 (バイナリ) - bsfilter
Debian パッケージディレクトリ検索 (バイナリ) - bogofilter
Debian パッケージディレクトリ検索 (バイナリ) - spamassassin