[mew-dist 23347] Re: spamassassin

Hideyuki SHIRAI ( 白井秀行 ) shirai at example.com
2003年 3月 20日 (木) 12:27:50 JST


From: Yoshinori Sakamoto <yosino-s at example.com> さん曰く
Subject: [mew-dist 23319] Re: spamassassin
Message-ID: <20030319003717.BD28.YOSINO-S at example.com>
Date: Wed, 19 Mar 2003 00:39:02 +0900

> > Mail-SpamAssassin + Mew の環境を使っている人がどのくらいいるかわからな
> > いのですが、 ~/.spamassassin/user_prefs の blacklist_from 等へ追加/削
> > 除する機能があるとうれしいです。
> 
> やー、だからこその、 smapassassin -a --add-to-blacklist の提案だったわけ
> ですが(^_-)  これだと、mew 側は、渡して忘れてしまってもかまいません(^_-)。

ぼくの spamassassin には、whitelist だけで blacklist って無いなぁ。
と思ったのですが、2.50 にバージョンをあげたら出てきました。

Mew4 で動くかどうかはわかりませんが、Mew 3 向けにそっこーで作っ
てみました。From: の誤検出をなるだけ避けようと思い、cache を触っ
ています。

これで spamassassin の使い方あっていますか?
auto-whitelist には入っているようです。また、smapassassin 自体は、
procmail から

* ? spamassassin --auto-whitelist | formail -x X-Spam-Status: | egrep 'Yes'

な感じで動かしています。

(defun mew-add-spamassasin-blacklist (&optional white)
  "From: を black list にいれる。C-u で white list にいれる。"
  (interactive "P")
  (let ((spamassassin (mew-which-exec "spamassassin")))
    (if (null spamassassin)
	(message "Install Spamassassin!!")
      (mew-summary-not-in-queue
       (mew-summary-not-in-draft
	(mew-sinfo-set-disp-msg t)
	(mew-summary-display)
	(let* ((fld (mew-current-get-fld (mew-frame-id)))
	       (msg (mew-current-get-msg (mew-frame-id)))
	       (cache (mew-cache-hit fld msg 'must-hit))
	       froms from)
	  (save-excursion
	    (set-buffer cache)
	    (save-excursion
	      (goto-char (point-min))
	      (setq froms (mew-header-get-value "From:"))))
	  (if (null froms)
	      (message "No From:")
	    (setq froms (mew-addrstr-parse-address-list froms))
	    (while (setq from (car froms))
	      (setq from (downcase from))
	      (when (y-or-n-p (format "Add `%s' to %s? " from
				      (if white "*WHITE* list" "*BLACK* list")))
		(message "Add `%s' to %s..." from
			 (if white "WHITE list" "BLACK list"))
		(apply 'call-process spamassassin nil nil nil
		       (list "--auto-whitelist"
			     (format "--add-addr-to-blacklist=%s"
				     (if white "whitelist" "blacklist") from)))
		(message "Add `%s' to %s...done" from
			 (if white "WHITE list" "BLACK list")))
	      (setq froms (cdr froms))))))))))

この機能、前から欲しかったんです。今までは、あぁ SPAM がフィルタ
通り抜けてきたぜ、というときには ~/.procmailrc に書き加えていま
した。最近は、一日 2〜3回ですが、昔は大変だった。

ちなみに
--remove-addr-from-whitelist=addr Remove addr from whitelist
というオプションもありますね。

-- 
白井秀行 (mailto:shirai at example.com)



Mew-dist メーリングリストの案内