Mercurial > emacs
annotate lisp/mh-e/mh-junk.el @ 67333:99f4a941eb41
(kinsoku-longer): Check eolp, not eobp.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Tue, 06 Dec 2005 06:23:54 +0000 |
parents | 2ae99b10dd40 |
children | 3a8785724cca |
rev | line source |
---|---|
50702 | 1 ;;; mh-junk.el --- Interface to anti-spam measures |
2 | |
65980
4520ae2624f2
* mh-init.el (mh-image-load-path): New function that adds the path to
Bill Wohler <wohler@newt.com>
parents:
65595
diff
changeset
|
3 ;; Copyright (C) 2003, 2004, 2005 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 | |
64085 | 24 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
25 ;; Boston, MA 02110-1301, USA. | |
50702 | 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 |
67313
2ae99b10dd40
* mh-comp.el (mh-forward): Went over all uses of the word "RANGE" in
Bill Wohler <wohler@newt.com>
parents:
67244
diff
changeset
|
44 This command trains the spam program in use (see the option `mh-junk-program') |
2ae99b10dd40
* mh-comp.el (mh-forward): Went over all uses of the word "RANGE" in
Bill Wohler <wohler@newt.com>
parents:
67244
diff
changeset
|
45 with the content of RANGE and then handles the message(s) as specified by the |
2ae99b10dd40
* mh-comp.el (mh-forward): Went over all uses of the word "RANGE" in
Bill Wohler <wohler@newt.com>
parents:
67244
diff
changeset
|
46 option `mh-junk-disposition'. |
2ae99b10dd40
* mh-comp.el (mh-forward): Went over all uses of the word "RANGE" in
Bill Wohler <wohler@newt.com>
parents:
67244
diff
changeset
|
47 |
2ae99b10dd40
* mh-comp.el (mh-forward): Went over all uses of the word "RANGE" in
Bill Wohler <wohler@newt.com>
parents:
67244
diff
changeset
|
48 Check the documentation of `mh-interactive-range' to see how RANGE is read in |
2ae99b10dd40
* mh-comp.el (mh-forward): Went over all uses of the word "RANGE" in
Bill Wohler <wohler@newt.com>
parents:
67244
diff
changeset
|
49 interactive use. |
50702 | 50 |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
51 For more information about using your particular spam fighting program, see: |
50702 | 52 |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
53 - `mh-spamassassin-blacklist' |
50702 | 54 - `mh-bogofilter-blacklist' |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
55 - `mh-spamprobe-blacklist'" |
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
56 (interactive (list (mh-interactive-range "Blacklist"))) |
50702 | 57 (let ((blacklist-func (nth 1 (assoc mh-junk-choice mh-junk-function-alist)))) |
58 (unless blacklist-func | |
59 (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
|
60 (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
|
61 ((equal mh-junk-disposition "") "+") |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
62 ((eq (aref mh-junk-disposition 0) ?+) |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
63 mh-junk-disposition) |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
64 ((eq (aref mh-junk-disposition 0) ?@) |
50702 | 65 (concat mh-current-folder "/" |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
66 (substring mh-junk-disposition 1))) |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
67 (t (concat "+" mh-junk-disposition))))) |
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
68 (mh-iterate-on-range msg range |
65595
8e711c68e4ff
message format spec fixes, commit 14, this should be final commit
Deepak Goel <deego@gnufans.org>
parents:
64085
diff
changeset
|
69 (message "Blacklisting message %d..." msg) |
50702 | 70 (funcall (symbol-function blacklist-func) msg) |
65595
8e711c68e4ff
message format spec fixes, commit 14, this should be final commit
Deepak Goel <deego@gnufans.org>
parents:
64085
diff
changeset
|
71 (message "Blacklisting message %d...done" msg) |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
72 (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
|
73 (setq mh-seen-list (cons msg mh-seen-list))) |
50702 | 74 (if dest |
75 (mh-refile-a-msg nil (intern dest)) | |
76 (mh-delete-a-msg nil))) | |
77 (mh-next-msg)))) | |
78 | |
79 ;;;###mh-autoload | |
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
80 (defun mh-junk-whitelist (range) |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
81 "Whitelist RANGE as ham. |
50702 | 82 |
67313
2ae99b10dd40
* mh-comp.el (mh-forward): Went over all uses of the word "RANGE" in
Bill Wohler <wohler@newt.com>
parents:
67244
diff
changeset
|
83 This command reclassifies the RANGE as ham if it were incorrectly classified |
2ae99b10dd40
* mh-comp.el (mh-forward): Went over all uses of the word "RANGE" in
Bill Wohler <wohler@newt.com>
parents:
67244
diff
changeset
|
84 as spam (see the option `mh-junk-program'). It then refiles the message into |
2ae99b10dd40
* mh-comp.el (mh-forward): Went over all uses of the word "RANGE" in
Bill Wohler <wohler@newt.com>
parents:
67244
diff
changeset
|
85 the \"+inbox\" folder. |
50702 | 86 |
67313
2ae99b10dd40
* mh-comp.el (mh-forward): Went over all uses of the word "RANGE" in
Bill Wohler <wohler@newt.com>
parents:
67244
diff
changeset
|
87 Check the documentation of `mh-interactive-range' to see how RANGE is read in |
2ae99b10dd40
* mh-comp.el (mh-forward): Went over all uses of the word "RANGE" in
Bill Wohler <wohler@newt.com>
parents:
67244
diff
changeset
|
88 interactive use." |
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
89 (interactive (list (mh-interactive-range "Whitelist"))) |
50702 | 90 (let ((whitelist-func (nth 2 (assoc mh-junk-choice mh-junk-function-alist)))) |
91 (unless whitelist-func | |
92 (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
|
93 (mh-iterate-on-range msg range |
65595
8e711c68e4ff
message format spec fixes, commit 14, this should be final commit
Deepak Goel <deego@gnufans.org>
parents:
64085
diff
changeset
|
94 (message "Whitelisting message %d..." msg) |
50702 | 95 (funcall (symbol-function whitelist-func) msg) |
65595
8e711c68e4ff
message format spec fixes, commit 14, this should be final commit
Deepak Goel <deego@gnufans.org>
parents:
64085
diff
changeset
|
96 (message "Whitelisting message %d...done" msg) |
50702 | 97 (mh-refile-a-msg nil (intern mh-inbox))) |
98 (mh-next-msg))) | |
99 | |
100 | |
101 | |
102 ;; Spamassassin Interface | |
103 | |
104 (defvar mh-spamassassin-executable (executable-find "spamassassin")) | |
105 (defvar mh-sa-learn-executable (executable-find "sa-learn")) | |
106 | |
107 (defun mh-spamassassin-blacklist (msg) | |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
108 "Blacklist MSG with SpamAssassin. |
50702 | 109 |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
110 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
|
111 your local distribution or from http://spamassassin.org/. |
50702 | 112 |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
113 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
|
114 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
115 MAILDIR=$HOME/`mhparam Path` |
50702 | 116 |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
117 # Fight spam with SpamAssassin. |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
118 :0fw |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
119 | spamc |
50702 | 120 |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
121 # 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
|
122 :0: |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
123 * ^X-Spam-Level: .......... |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
124 /dev/null |
50702 | 125 |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
126 :0: |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
127 * ^X-Spam-Status: Yes |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
128 spam/. |
50702 | 129 |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
130 If you don't use `spamc', use `spamassassin -P -a'. |
50702 | 131 |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
132 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
|
133 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
|
134 you. |
50702 | 135 |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
136 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
|
137 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
|
138 is under 5, the SpamAssassin default for \"spam\". |
50702 | 139 |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
140 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
|
141 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
|
142 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
|
143 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
|
144 the drain. |
50702 | 145 |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
146 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
|
147 `+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
|
148 a plethora of false positives so it is worthwhile to check. |
50702 | 149 |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
150 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
|
151 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
|
152 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
153 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
|
154 `~/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
|
155 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
|
156 available, the message is also recategorized as spam. |
50702 | 157 |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
158 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
|
159 `~/.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
|
160 message is also recategorized as ham. |
50702 | 161 |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
162 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
|
163 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
|
164 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
|
165 `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
|
166 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
|
167 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
|
168 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
|
169 `blacklist_from' entries with a single wildcard entry such as: |
50702 | 170 |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
171 blacklist_from *@*amazingoffersdirect2u.com |
50702 | 172 |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
173 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
|
174 \\[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
|
175 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
|
176 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
|
177 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
|
178 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
179 0 * * * * sa-learn --rebuild > /dev/null 2>&1" |
50702 | 180 (unless mh-spamassassin-executable |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
181 (error "Unable to find the spamassassin executable")) |
50702 | 182 (let ((current-folder mh-current-folder) |
183 (msg-file (mh-msg-filename msg mh-current-folder)) | |
184 (sender)) | |
185 (save-excursion | |
65595
8e711c68e4ff
message format spec fixes, commit 14, this should be final commit
Deepak Goel <deego@gnufans.org>
parents:
64085
diff
changeset
|
186 (message "Reporting message %d..." msg) |
50702 | 187 (mh-truncate-log-buffer) |
188 (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
|
189 ;;"--report" "--remove-from-whitelist" |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
190 "-r" "-R") ; spamassassin V2.20 |
50702 | 191 (when mh-sa-learn-executable |
192 (message "Recategorizing this message as spam...") | |
193 (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
|
194 "--single" "--spam" "--local" "--no-rebuild")) |
65595
8e711c68e4ff
message format spec fixes, commit 14, this should be final commit
Deepak Goel <deego@gnufans.org>
parents:
64085
diff
changeset
|
195 (message "Blacklisting message %d..." msg) |
50702 | 196 (set-buffer (get-buffer-create mh-temp-buffer)) |
197 (erase-buffer) | |
62847
aa8c2e12ee24
Upgraded to MH-E version 7.84.
Bill Wohler <wohler@newt.com>
parents:
62465
diff
changeset
|
198 (call-process (expand-file-name mh-scan-prog mh-progs) |
aa8c2e12ee24
Upgraded to MH-E version 7.84.
Bill Wohler <wohler@newt.com>
parents:
62465
diff
changeset
|
199 nil mh-junk-background nil |
50702 | 200 (format "%s" msg) current-folder |
201 "-format" "%<(mymbox{from})%|%(addr{from})%>") | |
202 (goto-char (point-min)) | |
203 (if (search-forward-regexp "^\\(.+\\)$" nil t) | |
204 (progn | |
205 (setq sender (match-string 0)) | |
206 (mh-spamassassin-add-rule "blacklist_from" sender) | |
65595
8e711c68e4ff
message format spec fixes, commit 14, this should be final commit
Deepak Goel <deego@gnufans.org>
parents:
64085
diff
changeset
|
207 (message "Blacklisting message %d...done" msg)) |
8e711c68e4ff
message format spec fixes, commit 14, this should be final commit
Deepak Goel <deego@gnufans.org>
parents:
64085
diff
changeset
|
208 (message "Blacklisting message %d...not done (from my address)" msg))))) |
50702 | 209 |
210 (defun mh-spamassassin-whitelist (msg) | |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
211 "Whitelist MSG with SpamAssassin. |
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 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
|
214 `~/.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
|
215 message is also recategorized as ham. |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
216 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
217 See `mh-spamassassin-blacklist' for more information." |
50702 | 218 (unless mh-spamassassin-executable |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
219 (error "Unable to find the spamassassin executable")) |
50702 | 220 (let ((msg-file (mh-msg-filename msg mh-current-folder)) |
221 (show-buffer (get-buffer mh-show-buffer)) | |
222 from) | |
223 (save-excursion | |
224 (set-buffer (get-buffer-create mh-temp-buffer)) | |
225 (erase-buffer) | |
226 (message "Removing spamassassin markup from message...") | |
227 (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
|
228 ;; "--remove-markup" |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
229 "-d") ; spamassassin V2.20 |
50702 | 230 (if show-buffer |
231 (kill-buffer show-buffer)) | |
232 (write-file msg-file) | |
233 (when mh-sa-learn-executable | |
234 (message "Recategorizing this message as ham...") | |
235 (call-process mh-sa-learn-executable msg-file mh-temp-buffer nil | |
236 "--single" "--ham" "--local --no-rebuild")) | |
65595
8e711c68e4ff
message format spec fixes, commit 14, this should be final commit
Deepak Goel <deego@gnufans.org>
parents:
64085
diff
changeset
|
237 (message "Whitelisting message %d..." msg) |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
238 (setq from |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
239 (car (mh-funcall-if-exists |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
240 ietf-drums-parse-address (mh-get-header-field "From:")))) |
50702 | 241 (kill-buffer nil) |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
242 (unless (or (null from) (equal from "")) |
50702 | 243 (mh-spamassassin-add-rule "whitelist_from" from)) |
65595
8e711c68e4ff
message format spec fixes, commit 14, this should be final commit
Deepak Goel <deego@gnufans.org>
parents:
64085
diff
changeset
|
244 (message "Whitelisting message %d...done" msg)))) |
50702 | 245 |
246 (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
|
247 "Add a new rule to `~/.spamassassin/user_prefs'. |
50702 | 248 The name of the rule is RULE and its body is BODY." |
249 (save-window-excursion | |
250 (let* ((line (format "%s\t%s\n" rule body)) | |
251 (case-fold-search t) | |
252 (file (expand-file-name "~/.spamassassin/user_prefs")) | |
253 (buffer-exists (find-buffer-visiting file))) | |
254 (find-file file) | |
255 (if (not (search-forward (format "\n%s" line) nil t)) | |
256 (progn | |
257 (goto-char (point-max)) | |
258 (insert (if (bolp) "" "\n") line) | |
259 (save-buffer))) | |
260 (if (not buffer-exists) | |
261 (kill-buffer nil))))) | |
262 | |
263 (defun mh-spamassassin-identify-spammers () | |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
264 "Identify spammers who are repeat offenders. |
50702 | 265 |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
266 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
|
267 `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
|
268 `~/.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
|
269 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
|
270 wildcard entry such as: |
50702 | 271 |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
272 blacklist_from *@*amazingoffersdirect2u.com" |
50702 | 273 (interactive) |
274 (let* ((file (expand-file-name "~/.spamassassin/user_prefs")) | |
275 (domains (make-hash-table :test 'equal))) | |
276 (find-file file) | |
277 ;; Only consider entries between last blank line and end of file. | |
278 (goto-char (1- (point-max))) | |
279 (search-backward-regexp "^$") | |
280 ;; Perform frequency count. | |
281 (save-excursion | |
282 (while (search-forward-regexp "^blacklist_from\\s-*\\(.*\\)@\\(.*\\)$" | |
283 nil t) | |
284 (let ((host (match-string 2)) | |
285 value) | |
286 ;; Remove top-level-domain from hostname. | |
287 (setq host (cdr (reverse (split-string host "\\.")))) | |
288 ;; Add counts for each host and domain part. | |
289 (while host | |
290 (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
|
291 (setf (gethash (car host) domains) (1+ (if (not value) 0 value))) |
50702 | 292 (setq host (cdr host)))))) |
293 | |
294 ;; Output | |
295 (delete-other-windows) | |
296 (pop-to-buffer (get-buffer-create "*MH-E Spammer Frequencies*")) | |
297 (erase-buffer) | |
298 (maphash '(lambda (key value) "" | |
299 (if (> value 2) | |
300 (insert (format "%s %s\n" key value)))) | |
301 domains) | |
302 (sort-numeric-fields 2 (point-min) (point-max)) | |
303 (reverse-region (point-min) (point-max)) | |
304 (goto-char (point-min)))) | |
305 | |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
306 |
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 ;; Bogofilter Interface |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
309 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
310 (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
|
311 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
312 (defun mh-bogofilter-blacklist (msg) |
67244
6521056180e7
(mh-bogofilter-blacklist, mh-bogofilter-whitelist): Bogofilter is
Bill Wohler <wohler@newt.com>
parents:
65980
diff
changeset
|
313 "Blacklist MSG with bogofilter. |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
314 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
315 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
|
316 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
|
317 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
318 Bogofilter is taught by running: |
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 -n < good-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 good message, and |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
323 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
324 bogofilter -s < spam-message |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
325 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
326 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
|
327 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
|
328 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
|
329 start doing a good job. |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
330 |
67244
6521056180e7
(mh-bogofilter-blacklist, mh-bogofilter-whitelist): Bogofilter is
Bill Wohler <wohler@newt.com>
parents:
65980
diff
changeset
|
331 To use bogofilter, add the following recipes to `.procmailrc': |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
332 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
333 MAILDIR=$HOME/`mhparam Path` |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
334 |
67244
6521056180e7
(mh-bogofilter-blacklist, mh-bogofilter-whitelist): Bogofilter is
Bill Wohler <wohler@newt.com>
parents:
65980
diff
changeset
|
335 # Fight spam with bogofilter. |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
336 :0fw |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
337 | bogofilter -3 -e -p |
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: Yes, tests=bogofilter |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
341 spam/. |
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 :0: |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
344 * ^X-Bogosity: Unsure, tests=bogofilter |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
345 spam/unsure/. |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
346 |
67244
6521056180e7
(mh-bogofilter-blacklist, mh-bogofilter-whitelist): Bogofilter is
Bill Wohler <wohler@newt.com>
parents:
65980
diff
changeset
|
347 If bogofilter classifies a message incorrectly, or is unsure, you can use the |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
348 MH-E commands \\[mh-junk-blacklist] and \\[mh-junk-whitelist] to update |
67244
6521056180e7
(mh-bogofilter-blacklist, mh-bogofilter-whitelist): Bogofilter is
Bill Wohler <wohler@newt.com>
parents:
65980
diff
changeset
|
349 bogofilter's training. |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
350 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
351 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
|
352 occasionally to shrink the database: |
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 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
|
355 mv wordlist.db wordlist.db.prv |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
356 mv wordlist.db.new wordlist.db |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
357 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
358 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
|
359 (unless mh-bogofilter-executable |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
360 (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
|
361 (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
|
362 (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
|
363 nil "-s"))) |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
364 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
365 (defun mh-bogofilter-whitelist (msg) |
67244
6521056180e7
(mh-bogofilter-blacklist, mh-bogofilter-whitelist): Bogofilter is
Bill Wohler <wohler@newt.com>
parents:
65980
diff
changeset
|
366 "Whitelist MSG with bogofilter. |
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
367 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
368 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
|
369 (unless mh-bogofilter-executable |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
370 (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
|
371 (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
|
372 (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
|
373 nil "-n"))) |
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 |
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 ;; Spamprobe Interface |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
378 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
379 (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
|
380 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
381 (defun mh-spamprobe-blacklist (msg) |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
382 "Blacklist MSG with SpamProbe. |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
383 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
384 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
|
385 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
|
386 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
387 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
|
388 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
389 MAILDIR=$HOME/`mhparam Path` |
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 # Fight spam with SpamProbe. |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
392 :0 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
393 SCORE=| spamprobe receive |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
394 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
395 :0 wf |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
396 | formail -I \"X-SpamProbe: $SCORE\" |
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 :0: |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
399 *^X-SpamProbe: SPAM |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
400 spam/. |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
401 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
402 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
|
403 \\[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
|
404 training." |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
405 (unless mh-spamprobe-executable |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
406 (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
|
407 (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
|
408 (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
|
409 nil "spam"))) |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
410 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
411 (defun mh-spamprobe-whitelist (msg) |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
412 "Whitelist MSG with SpamProbe. |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
413 |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
414 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
|
415 (unless mh-spamprobe-executable |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
416 (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
|
417 (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
|
418 (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
|
419 nil "good"))) |
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
420 |
50702 | 421 (provide 'mh-junk) |
422 | |
423 ;;; Local Variables: | |
424 ;;; indent-tabs-mode: nil | |
425 ;;; sentence-end-double-space: nil | |
426 ;;; End: | |
427 | |
52401 | 428 ;;; arch-tag: 603335f1-77ff-4306-8828-5d3dad51abe1 |
50702 | 429 ;;; mh-junk.el ends here |