Mercurial > emacs
annotate lisp/mh-e/mh-junk.el @ 59061:a7985894de81
Comment change.
| author | Richard M. Stallman <rms@gnu.org> |
|---|---|
| date | Tue, 21 Dec 2004 11:50:52 +0000 |
| parents | e9a6cbc8ca5e |
| children | 4f4f410e6fe8 d8411455de48 |
| rev | line source |
|---|---|
| 50702 | 1 ;;; mh-junk.el --- Interface to anti-spam measures |
| 2 | |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
3 ;; Copyright (C) 2003, 2004 Free Software Foundation, Inc. |
| 50702 | 4 |
| 5 ;; Author: Satyaki Das <satyaki@theforce.stanford.edu>, | |
| 6 ;; Bill Wohler <wohler@newt.com> | |
| 7 ;; Maintainer: Bill Wohler <wohler@newt.com> | |
| 8 ;; Keywords: mail, spam | |
| 9 | |
| 10 ;; This file is part of GNU Emacs. | |
| 11 | |
| 12 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
| 13 ;; it under the terms of the GNU General Public License as published by | |
| 14 ;; the Free Software Foundation; either version 2, or (at your option) | |
| 15 ;; any later version. | |
| 16 | |
| 17 ;; GNU Emacs is distributed in the hope that it will be useful, | |
| 18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 20 ;; GNU General Public License for more details. | |
| 21 | |
| 22 ;; You should have received a copy of the GNU General Public License | |
| 23 ;; along with GNU Emacs; see the file COPYING. If not, write to the | |
| 24 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
| 25 ;; Boston, MA 02111-1307, USA. | |
| 26 | |
| 27 ;;; Commentary: | |
| 28 | |
| 29 ;; Spam handling in MH-E. | |
| 30 | |
| 31 ;;; Change Log: | |
| 32 | |
| 33 ;;; Code: | |
| 34 | |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
35 (eval-when-compile (require 'mh-acros)) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
36 (mh-require-cl) |
| 50702 | 37 (require 'mh-e) |
| 38 | |
| 39 ;; Interactive functions callable from the folder buffer | |
| 40 ;;;###mh-autoload | |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
41 (defun mh-junk-blacklist (range) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
42 "Blacklist RANGE as spam. |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
43 |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
44 This command trains the spam program in use (see the `mh-junk-program' option) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
45 with the content of the range (see `mh-interactive-range') and then handles |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
46 the message(s) as specified by the `mh-junk-disposition' option. |
| 50702 | 47 |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
48 For more information about using your particular spam fighting program, see: |
| 50702 | 49 |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
50 - `mh-spamassassin-blacklist' |
| 50702 | 51 - `mh-bogofilter-blacklist' |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
52 - `mh-spamprobe-blacklist'" |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
53 (interactive (list (mh-interactive-range "Blacklist"))) |
| 50702 | 54 (let ((blacklist-func (nth 1 (assoc mh-junk-choice mh-junk-function-alist)))) |
| 55 (unless blacklist-func | |
| 56 (error "Customize `mh-junk-program' appropriately")) | |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
57 (let ((dest (cond ((null mh-junk-disposition) nil) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
58 ((equal mh-junk-disposition "") "+") |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
59 ((eq (aref mh-junk-disposition 0) ?+) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
60 mh-junk-disposition) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
61 ((eq (aref mh-junk-disposition 0) ?@) |
| 50702 | 62 (concat mh-current-folder "/" |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
63 (substring mh-junk-disposition 1))) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
64 (t (concat "+" mh-junk-disposition))))) |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
65 (mh-iterate-on-range msg range |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
66 (message (format "Blacklisting message %d..." msg)) |
| 50702 | 67 (funcall (symbol-function blacklist-func) msg) |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
68 (message (format "Blacklisting message %d...done" msg)) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
69 (if (not (memq msg mh-seen-list)) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
70 (setq mh-seen-list (cons msg mh-seen-list))) |
| 50702 | 71 (if dest |
| 72 (mh-refile-a-msg nil (intern dest)) | |
| 73 (mh-delete-a-msg nil))) | |
| 74 (mh-next-msg)))) | |
| 75 | |
| 76 ;;;###mh-autoload | |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
77 (defun mh-junk-whitelist (range) |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
78 "Whitelist RANGE as ham. |
| 50702 | 79 |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
80 This command reclassifies a range of messages (see `mh-interactive-range') as |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
81 ham if it were incorrectly classified as spam. It then refiles the message |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
82 into the `+inbox' folder. |
| 50702 | 83 |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
84 The `mh-junk-program' option specifies the spam program in use." |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
85 (interactive (list (mh-interactive-range "Whitelist"))) |
| 50702 | 86 (let ((whitelist-func (nth 2 (assoc mh-junk-choice mh-junk-function-alist)))) |
| 87 (unless whitelist-func | |
| 88 (error "Customize `mh-junk-program' appropriately")) | |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
89 (mh-iterate-on-range msg range |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
90 (message (format "Whitelisting message %d..." msg)) |
| 50702 | 91 (funcall (symbol-function whitelist-func) msg) |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
92 (message (format "Whitelisting message %d...done" msg)) |
| 50702 | 93 (mh-refile-a-msg nil (intern mh-inbox))) |
| 94 (mh-next-msg))) | |
| 95 | |
| 96 | |
| 97 | |
| 98 ;; Spamassassin Interface | |
| 99 | |
| 100 (defvar mh-spamassassin-executable (executable-find "spamassassin")) | |
| 101 (defvar mh-sa-learn-executable (executable-find "sa-learn")) | |
| 102 | |
| 103 (defun mh-spamassassin-blacklist (msg) | |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
104 "Blacklist MSG with SpamAssassin. |
| 50702 | 105 |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
106 SpamAssassin is one of the more popular spam filtering programs. Get it from |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
107 your local distribution or from http://spamassassin.org/. |
| 50702 | 108 |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
109 To use SpamAssassin, add the following recipes to `.procmailrc': |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
110 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
111 MAILDIR=$HOME/`mhparam Path` |
| 50702 | 112 |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
113 # Fight spam with SpamAssassin. |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
114 :0fw |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
115 | spamc |
| 50702 | 116 |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
117 # Anything with a spam level of 10 or more is junked immediately. |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
118 :0: |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
119 * ^X-Spam-Level: .......... |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
120 /dev/null |
| 50702 | 121 |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
122 :0: |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
123 * ^X-Spam-Status: Yes |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
124 spam/. |
| 50702 | 125 |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
126 If you don't use `spamc', use `spamassassin -P -a'. |
| 50702 | 127 |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
128 Note that one of the recipes above throws away messages with a score greater |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
129 than or equal to 10. Here's how you can determine a value that works best for |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
130 you. |
| 50702 | 131 |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
132 First, run `spamassassin -t' on every mail message in your archive and use |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
133 Gnumeric to verify that the average plus the standard deviation of good mail |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
134 is under 5, the SpamAssassin default for \"spam\". |
| 50702 | 135 |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
136 Using Gnumeric, sort the messages by score and view the messages with the |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
137 highest score. Determine the score which encompasses all of your interesting |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
138 messages and add a couple of points to be conservative. Add that many dots to |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
139 the `X-Spam-Level:' header field above to send messages with that score down |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
140 the drain. |
| 50702 | 141 |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
142 In the example above, messages with a score of 5-9 are set aside in the |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
143 `+spam' folder for later review. The major weakness of rules-based filters is |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
144 a plethora of false positives so it is worthwhile to check. |
| 50702 | 145 |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
146 If SpamAssassin classifies a message incorrectly, or is unsure, you can use |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
147 the MH-E commands \\[mh-junk-blacklist] and \\[mh-junk-whitelist]. |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
148 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
149 The \\[mh-junk-blacklist] command adds a `blacklist_from' entry to |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
150 `~/spamassassin/user_prefs', deletes the message, and sends the message to the |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
151 Razor, so that others might not see this spam. If the `sa-learn' command is |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
152 available, the message is also recategorized as spam. |
| 50702 | 153 |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
154 The \\[mh-junk-whitelist] command adds a `whitelist_from' rule to the |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
155 `~/.spamassassin/user_prefs' file. If the `sa-learn' command is available, the |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
156 message is also recategorized as ham. |
| 50702 | 157 |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
158 Over time, you'll observe that the same host or domain occurs repeatedly in |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
159 the `blacklist_from' entries, so you might think that you could avoid future |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
160 spam by blacklisting all mail from a particular domain. The utility function |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
161 `mh-spamassassin-identify-spammers' helps you do precisely that. This function |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
162 displays a frequency count of the hosts and domains in the `blacklist_from' |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
163 entries from the last blank line in `~/.spamassassin/user_prefs' to the end of |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
164 the file. This information can be used so that you can replace multiple |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
165 `blacklist_from' entries with a single wildcard entry such as: |
| 50702 | 166 |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
167 blacklist_from *@*amazingoffersdirect2u.com |
| 50702 | 168 |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
169 In versions of SpamAssassin (2.50 and on) that support a Bayesian classifier, |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
170 \\[mh-junk-blacklist] uses the `sa-learn' program to recategorize the message |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
171 as spam. Neither MH-E, nor SpamAssassin, rebuilds the database after adding |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
172 words, so you will need to run `sa-learn --rebuild' periodically. This can be |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
173 done by adding the following to your crontab: |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
174 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
175 0 * * * * sa-learn --rebuild > /dev/null 2>&1" |
| 50702 | 176 (unless mh-spamassassin-executable |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
177 (error "Unable to find the spamassassin executable")) |
| 50702 | 178 (let ((current-folder mh-current-folder) |
| 179 (msg-file (mh-msg-filename msg mh-current-folder)) | |
| 180 (sender)) | |
| 181 (save-excursion | |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
182 (message (format "Reporting message %d..." msg)) |
| 50702 | 183 (mh-truncate-log-buffer) |
| 184 (call-process mh-spamassassin-executable msg-file mh-log-buffer nil | |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
185 ;;"--report" "--remove-from-whitelist" |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
186 "-r" "-R") ; spamassassin V2.20 |
| 50702 | 187 (when mh-sa-learn-executable |
| 188 (message "Recategorizing this message as spam...") | |
| 189 (call-process mh-sa-learn-executable msg-file mh-log-buffer nil | |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
190 "--single" "--spam" "--local" "--no-rebuild")) |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
191 (message (format "Blacklisting message %d..." msg)) |
| 50702 | 192 (set-buffer (get-buffer-create mh-temp-buffer)) |
| 193 (erase-buffer) | |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
194 (call-process (expand-file-name mh-scan-prog mh-progs) mh-junk-background |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
195 t nil |
| 50702 | 196 (format "%s" msg) current-folder |
| 197 "-format" "%<(mymbox{from})%|%(addr{from})%>") | |
| 198 (goto-char (point-min)) | |
| 199 (if (search-forward-regexp "^\\(.+\\)$" nil t) | |
| 200 (progn | |
| 201 (setq sender (match-string 0)) | |
| 202 (mh-spamassassin-add-rule "blacklist_from" sender) | |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
203 (message (format "Blacklisting message %d...done" msg))) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
204 (message (format "Blacklisting message %d...not done (from my address)" msg)))))) |
| 50702 | 205 |
| 206 (defun mh-spamassassin-whitelist (msg) | |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
207 "Whitelist MSG with SpamAssassin. |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
208 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
209 The \\[mh-junk-whitelist] command adds a `whitelist_from' rule to the |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
210 `~/.spamassassin/user_prefs' file. If the `sa-learn' command is available, the |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
211 message is also recategorized as ham. |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
212 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
213 See `mh-spamassassin-blacklist' for more information." |
| 50702 | 214 (unless mh-spamassassin-executable |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
215 (error "Unable to find the spamassassin executable")) |
| 50702 | 216 (let ((msg-file (mh-msg-filename msg mh-current-folder)) |
| 217 (show-buffer (get-buffer mh-show-buffer)) | |
| 218 from) | |
| 219 (save-excursion | |
| 220 (set-buffer (get-buffer-create mh-temp-buffer)) | |
| 221 (erase-buffer) | |
| 222 (message "Removing spamassassin markup from message...") | |
| 223 (call-process mh-spamassassin-executable msg-file mh-temp-buffer nil | |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
224 ;; "--remove-markup" |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
225 "-d") ; spamassassin V2.20 |
| 50702 | 226 (if show-buffer |
| 227 (kill-buffer show-buffer)) | |
| 228 (write-file msg-file) | |
| 229 (when mh-sa-learn-executable | |
| 230 (message "Recategorizing this message as ham...") | |
| 231 (call-process mh-sa-learn-executable msg-file mh-temp-buffer nil | |
| 232 "--single" "--ham" "--local --no-rebuild")) | |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
233 (message (format "Whitelisting message %d..." msg)) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
234 (setq from |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
235 (car (mh-funcall-if-exists |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
236 ietf-drums-parse-address (mh-get-header-field "From:")))) |
| 50702 | 237 (kill-buffer nil) |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
238 (unless (or (null from) (equal from "")) |
| 50702 | 239 (mh-spamassassin-add-rule "whitelist_from" from)) |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
240 (message (format "Whitelisting message %d...done" msg))))) |
| 50702 | 241 |
| 242 (defun mh-spamassassin-add-rule (rule body) | |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
243 "Add a new rule to `~/.spamassassin/user_prefs'. |
| 50702 | 244 The name of the rule is RULE and its body is BODY." |
| 245 (save-window-excursion | |
| 246 (let* ((line (format "%s\t%s\n" rule body)) | |
| 247 (case-fold-search t) | |
| 248 (file (expand-file-name "~/.spamassassin/user_prefs")) | |
| 249 (buffer-exists (find-buffer-visiting file))) | |
| 250 (find-file file) | |
| 251 (if (not (search-forward (format "\n%s" line) nil t)) | |
| 252 (progn | |
| 253 (goto-char (point-max)) | |
| 254 (insert (if (bolp) "" "\n") line) | |
| 255 (save-buffer))) | |
| 256 (if (not buffer-exists) | |
| 257 (kill-buffer nil))))) | |
| 258 | |
| 259 (defun mh-spamassassin-identify-spammers () | |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
260 "Identify spammers who are repeat offenders. |
| 50702 | 261 |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
262 This function displays a frequency count of the hosts and domains in the |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
263 `blacklist_from' entries from the last blank line in |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
264 `~/.spamassassin/user_prefs' to the end of the file. This information can be |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
265 used so that you can replace multiple `blacklist_from' entries with a single |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
266 wildcard entry such as: |
| 50702 | 267 |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
268 blacklist_from *@*amazingoffersdirect2u.com" |
| 50702 | 269 (interactive) |
| 270 (let* ((file (expand-file-name "~/.spamassassin/user_prefs")) | |
| 271 (domains (make-hash-table :test 'equal))) | |
| 272 (find-file file) | |
| 273 ;; Only consider entries between last blank line and end of file. | |
| 274 (goto-char (1- (point-max))) | |
| 275 (search-backward-regexp "^$") | |
| 276 ;; Perform frequency count. | |
| 277 (save-excursion | |
| 278 (while (search-forward-regexp "^blacklist_from\\s-*\\(.*\\)@\\(.*\\)$" | |
| 279 nil t) | |
| 280 (let ((host (match-string 2)) | |
| 281 value) | |
| 282 ;; Remove top-level-domain from hostname. | |
| 283 (setq host (cdr (reverse (split-string host "\\.")))) | |
| 284 ;; Add counts for each host and domain part. | |
| 285 (while host | |
| 286 (setq value (gethash (car host) domains)) | |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
287 (setf (gethash (car host) domains) (1+ (if (not value) 0 value))) |
| 50702 | 288 (setq host (cdr host)))))) |
| 289 | |
| 290 ;; Output | |
| 291 (delete-other-windows) | |
| 292 (pop-to-buffer (get-buffer-create "*MH-E Spammer Frequencies*")) | |
| 293 (erase-buffer) | |
| 294 (maphash '(lambda (key value) "" | |
| 295 (if (> value 2) | |
| 296 (insert (format "%s %s\n" key value)))) | |
| 297 domains) | |
| 298 (sort-numeric-fields 2 (point-min) (point-max)) | |
| 299 (reverse-region (point-min) (point-max)) | |
| 300 (goto-char (point-min)))) | |
| 301 | |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
302 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
303 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
304 ;; Bogofilter Interface |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
305 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
306 (defvar mh-bogofilter-executable (executable-find "bogofilter")) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
307 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
308 (defun mh-bogofilter-blacklist (msg) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
309 "Blacklist MSG with Bogofilter. |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
310 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
311 Bogofilter is a Bayesian spam filtering program. Get it from your local |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
312 distribution or from http://bogofilter.sourceforge.net/. |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
313 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
314 Bogofilter is taught by running: |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
315 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
316 bogofilter -n < good-message |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
317 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
318 on every good message, and |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
319 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
320 bogofilter -s < spam-message |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
321 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
322 on every spam message. This is called a full training; three other |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
323 training methods are described in the FAQ that is distributed with bogofilter. |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
324 Note that most Bayesian filters need 1000 to 5000 of each type of message to |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
325 start doing a good job. |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
326 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
327 To use Bogofilter, add the following recipes to `.procmailrc': |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
328 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
329 MAILDIR=$HOME/`mhparam Path` |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
330 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
331 # Fight spam with Bogofilter. |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
332 :0fw |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
333 | bogofilter -3 -e -p |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
334 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
335 :0: |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
336 * ^X-Bogosity: Yes, tests=bogofilter |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
337 spam/. |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
338 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
339 :0: |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
340 * ^X-Bogosity: Unsure, tests=bogofilter |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
341 spam/unsure/. |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
342 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
343 If Bogofilter classifies a message incorrectly, or is unsure, you can use the |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
344 MH-E commands \\[mh-junk-blacklist] and \\[mh-junk-whitelist] to update |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
345 Bogofilter's training. |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
346 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
347 The \"Bogofilter FAQ\" suggests that you run the following |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
348 occasionally to shrink the database: |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
349 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
350 bogoutil -d wordlist.db | bogoutil -l wordlist.db.new |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
351 mv wordlist.db wordlist.db.prv |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
352 mv wordlist.db.new wordlist.db |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
353 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
354 The \"Bogofilter tuning HOWTO\" describes how you can fine-tune Bogofilter." |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
355 (unless mh-bogofilter-executable |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
356 (error "Unable to find the bogofilter executable")) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
357 (let ((msg-file (mh-msg-filename msg mh-current-folder))) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
358 (call-process mh-bogofilter-executable msg-file mh-junk-background |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
359 nil "-s"))) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
360 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
361 (defun mh-bogofilter-whitelist (msg) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
362 "Whitelist MSG with Bogofilter. |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
363 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
364 See `mh-bogofilter-blacklist' for more information." |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
365 (unless mh-bogofilter-executable |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
366 (error "Unable to find the bogofilter executable")) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
367 (let ((msg-file (mh-msg-filename msg mh-current-folder))) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
368 (call-process mh-bogofilter-executable msg-file mh-junk-background |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
369 nil "-n"))) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
370 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
371 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
372 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
373 ;; Spamprobe Interface |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
374 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
375 (defvar mh-spamprobe-executable (executable-find "spamprobe")) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
376 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
377 (defun mh-spamprobe-blacklist (msg) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
378 "Blacklist MSG with SpamProbe. |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
379 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
380 SpamProbe is a Bayesian spam filtering program. Get it from your local |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
381 distribution or from http://spamprobe.sourceforge.net. |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
382 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
383 To use SpamProbe, add the following recipes to `.procmailrc': |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
384 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
385 MAILDIR=$HOME/`mhparam Path` |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
386 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
387 # Fight spam with SpamProbe. |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
388 :0 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
389 SCORE=| spamprobe receive |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
390 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
391 :0 wf |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
392 | formail -I \"X-SpamProbe: $SCORE\" |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
393 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
394 :0: |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
395 *^X-SpamProbe: SPAM |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
396 spam/. |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
397 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
398 If SpamProbe classifies a message incorrectly, you can use the MH-E commands |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
399 \\[mh-junk-blacklist] and \\[mh-junk-whitelist] to update SpamProbe's |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
400 training." |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
401 (unless mh-spamprobe-executable |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
402 (error "Unable to find the spamprobe executable")) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
403 (let ((msg-file (mh-msg-filename msg mh-current-folder))) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
404 (call-process mh-spamprobe-executable msg-file mh-junk-background |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
405 nil "spam"))) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
406 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
407 (defun mh-spamprobe-whitelist (msg) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
408 "Whitelist MSG with SpamProbe. |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
409 |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
410 See `mh-spamprobe-blacklist' for more information." |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
411 (unless mh-spamprobe-executable |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
412 (error "Unable to find the spamprobe executable")) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
413 (let ((msg-file (mh-msg-filename msg mh-current-folder))) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
414 (call-process mh-spamprobe-executable msg-file mh-junk-background |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
415 nil "good"))) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
416 |
| 50702 | 417 (provide 'mh-junk) |
| 418 | |
| 419 ;;; Local Variables: | |
| 420 ;;; indent-tabs-mode: nil | |
| 421 ;;; sentence-end-double-space: nil | |
| 422 ;;; End: | |
| 423 | |
| 52401 | 424 ;;; arch-tag: 603335f1-77ff-4306-8828-5d3dad51abe1 |
| 50702 | 425 ;;; mh-junk.el ends here |
