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