Mercurial > emacs
annotate lisp/mh-e/mh-junk.el @ 67313:2ae99b10dd40
* mh-comp.el (mh-forward): Went over all uses of the word "RANGE" in
the docstrings and made usage consistent. Generally speaking,
"messages in range" and "range of messages" is redundant and just
"range" can be used in most circumstances. Also ensured that
mh-interactive-range was mentioned in all interactive functions that
use a range which describes the range argument for both users and
programmers.
* mh-e.el (mh-delete-msg-no-motion, mh-refile-msg)
(mh-refile-or-write-again, mh-rescan-folder, mh-undo)
(mh-visit-folder, mh-scan-folder, mh-regenerate-headers)
(mh-notate-user-sequences, mh-delete-msg-from-seq, mh-catchup): Ditto.
* mh-funcs.el (mh-copy-msg, mh-pack-folder, mh-pack-folder-1): Ditto.
* mh-junk.el (mh-junk-blacklist, mh-junk-whitelist): Ditto.
* mh-print.el (mh-ps-print-range, mh-ps-print-msg)
(mh-ps-print-msg-file, mh-print-msg): Ditto.
* mh-seq.el (mh-put-msg-in-seq, mh-range-to-msg-list)
(mh-narrow-to-range, mh-toggle-tick): Ditto.
author | Bill Wohler <wohler@newt.com> |
---|---|
date | Sun, 04 Dec 2005 22:34:49 +0000 |
parents | 6521056180e7 |
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 |