summaryrefslogtreecommitdiff
path: root/lisp/gnus/spam.el
diff options
context:
space:
mode:
authorMiles Bader <miles@gnu.org>2004-12-07 21:56:42 +0000
committerMiles Bader <miles@gnu.org>2004-12-07 21:56:42 +0000
commitad136a7c3b310fa7240dd2adf62f23b454782bd0 (patch)
treec48ec6b93ea21fc66e1b94f08e3f1cecb9000f24 /lisp/gnus/spam.el
parente9962ae153a6a895c2e588ea8c844176cd0beaf8 (diff)
downloademacs-ad136a7c3b310fa7240dd2adf62f23b454782bd0.tar.gz
Revision: miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-716
Merge from gnus--rel--5.10 Patches applied: * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-74 Update from CVS 2004-12-02 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/message.el (message-forward-make-body-mml): Remove headers according to message-forward-ignored-headers if a message is decoded. 2004-12-02 Romain Francoise <romain@orebokech.com> * lisp/gnus/message.el (message-forward-make-body-plain): Always remove headers according to message-forward-ignored-headers. 2004-11-26 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/lpath.el: Remove bbdb-create-internal, bbdb-records, spam-BBDB-register-routine and spam-enter-ham-BBDB. * lisp/gnus/nnrss.el (nnrss-string-as-multibyte): Redefine it as a macro in order to silence the byte compiler. * lisp/gnus/pop3.el (pop3-md5): Define it before being used. * lisp/gnus/spam.el: Fix the way to silence the byte compiler, which complained about bbdb-buffer, bbdb-create-internal, bbdb-search-simple, mail-check-payment, spam-BBDB-register-routine, spam-enter-ham-BBDB, spam-stat-buffer-change-to-non-spam, spam-stat-buffer-change-to-spam, spam-stat-buffer-is-non-spam, spam-stat-buffer-is-spam, spam-stat-load, spam-stat-register-ham-routine, spam-stat-register-spam-routine, spam-stat-save and spam-stat-split-fancy. 2004-11-26 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/canlock.el (canlock-password): Remove `:size 0' or `:size 1' which may confuse users. (canlock-password-for-verify): Ditto. * lisp/gnus/deuglify.el (gnus-outlook-deuglify-unwrap-stop-chars): Ditto. * lisp/gnus/gnus-art.el (gnus-emphasis-alist): Ditto. * lisp/gnus/gnus-registry.el (gnus-registry-max-entries): Ditto. * lisp/gnus/gnus-score.el (gnus-adaptive-word-length-limit): Ditto. * lisp/gnus/gnus-start.el (gnus-save-killed-list): Ditto. * lisp/gnus/gnus-sum.el (gnus-thread-hide-subtree): Ditto. (gnus-sum-thread-tree-root): Ditto. (gnus-sum-thread-tree-false-root): Ditto. (gnus-sum-thread-tree-single-indent): Ditto. * lisp/gnus/message.el (message-courtesy-message): Ditto. (message-archive-note): Ditto. (message-subscribed-address-file): Ditto. (message-user-fqdn): Ditto. * lisp/gnus/spam-report.el (spam-report-gmane-regex): Ditto. * lisp/gnus/spam.el (spam-blackhole-good-server-regex): Ditto. 2004-11-25 Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/message.el (message-forbidden-properties): Fixed typo in doc string. 2004-11-25 Lars Magne Ingebrigtsen <larsi@gnus.org> * lisp/gnus/message.el (message-strip-forbidden-properties): Bind buffer-read-only (etc) to nil. 2004-11-25 Reiner Steib <Reiner.Steib@gmx.de> * lisp/gnus/gnus-util.el (gnus-replace-in-string): Added doc string. * lisp/gnus/nnmail.el (nnmail-split-header-length-limit): Increase to 2048 to avoid problems when splitting mails with many recipients. 2004-11-23 Katsumi Yamaoka <yamaoka@jpl.org> * lisp/gnus/rfc2047.el (rfc2047-header-encoding-alist): Add In-Reply-To to address-mime. Suggested by ARISAWA Akihiro <ari@mbf.ocn.ne.jp>. 2004-11-22 Marek Martin <marek.martin@mum.pri.ee> (tiny change) * lisp/gnus/nnfolder.el (nnfolder-request-create-group): Save current buffer. 2004-11-22 Reiner Steib <Reiner.Steib@gmx.de> * man/message.texi (Various Message Variables): Mention that all mail file variables are derived from `message-directory'. * man/gnus.texi (Splitting Mail): Clarify bogus group. 2004-11-16 Reiner Steib <Reiner.Steib@gmx.de> * man/gnus.texi (Filtering Spam Using The Spam ELisp Package):
Diffstat (limited to 'lisp/gnus/spam.el')
-rw-r--r--lisp/gnus/spam.el238
1 files changed, 118 insertions, 120 deletions
diff --git a/lisp/gnus/spam.el b/lisp/gnus/spam.el
index 075408b8fc7..a0b28340717 100644
--- a/lisp/gnus/spam.el
+++ b/lisp/gnus/spam.el
@@ -295,8 +295,7 @@ All unmarked article in such group receive the spam mark on group entry."
(defcustom spam-blackhole-good-server-regex nil
"String matching IP addresses that should not be checked in the blackholes."
- :type '(radio (const nil)
- (regexp :format "%t: %v\n" :size 0))
+ :type '(radio (const nil) regexp)
:group 'spam)
(defcustom spam-face 'gnus-splash-face
@@ -1257,6 +1256,9 @@ functions")
;;;; Hashcash.
+(eval-when-compile
+ (autoload 'mail-check-payment "hashcash"))
+
(condition-case nil
(progn
(require 'hashcash)
@@ -1265,9 +1267,7 @@ functions")
"Check the headers for hashcash payments."
(mail-check-payment))) ;mail-check-payment returns a boolean
- (file-error (progn
- (defalias 'mail-check-payment 'ignore)
- (defalias 'spam-check-hashcash 'ignore))))
+ (file-error))
;;;; BBDB
@@ -1276,66 +1276,67 @@ functions")
;; all this is done inside a condition-case to trap errors
-(condition-case nil
- (progn
- (require 'bbdb)
- (require 'bbdb-com)
-
- (defun spam-enter-ham-BBDB (addresses &optional remove)
- "Enter an address into the BBDB; implies ham (non-spam) sender"
- (dolist (from addresses)
- (when (stringp from)
- (let* ((parsed-address (gnus-extract-address-components from))
- (name (or (nth 0 parsed-address) "Ham Sender"))
- (remove-function (if remove
- 'bbdb-delete-record-internal
- 'ignore))
- (net-address (nth 1 parsed-address))
- (record (and net-address
- (bbdb-search-simple nil net-address))))
- (when net-address
- (gnus-message 5 "%s address %s %s BBDB"
- (if remove "Deleting" "Adding")
- from
- (if remove "from" "to"))
- (if record
- (funcall remove-function record)
- (bbdb-create-internal name nil net-address nil nil
- "ham sender added by spam.el")))))))
-
- (defun spam-BBDB-register-routine (articles &optional unregister)
- (let (addresses)
- (dolist (article articles)
- (when (stringp (spam-fetch-field-from-fast article))
- (push (spam-fetch-field-from-fast article) addresses)))
- ;; now do the register/unregister action
- (spam-enter-ham-BBDB addresses unregister)))
-
- (defun spam-BBDB-unregister-routine (articles)
- (spam-BBDB-register-routine articles t))
-
- (defun spam-check-BBDB ()
- "Mail from people in the BBDB is classified as ham or non-spam"
- (let ((who (nnmail-fetch-field "from"))
- (spam-split-group (if spam-split-symbolic-return
- 'spam
- spam-split-group)))
- (when who
- (setq who (nth 1 (gnus-extract-address-components who)))
- (if (bbdb-search-simple nil who)
- t
- (if spam-use-BBDB-exclusive
- spam-split-group
- nil))))))
-
- (file-error (progn
- (defalias 'bbdb-search-simple 'ignore)
- (defalias 'spam-check-BBDB 'ignore)
- (defalias 'spam-BBDB-register-routine 'ignore)
- (defalias 'spam-enter-ham-BBDB 'ignore)
- (defalias 'bbdb-create-internal 'ignore)
- (defalias 'bbdb-delete-record-internal 'ignore)
- (defalias 'bbdb-records 'ignore))))
+(eval-when-compile
+ (autoload 'bbdb-buffer "bbdb")
+ (autoload 'bbdb-create-internal "bbdb")
+ (autoload 'bbdb-search-simple "bbdb"))
+
+(eval-and-compile
+ (when (condition-case nil
+ (progn
+ (require 'bbdb)
+ (require 'bbdb-com))
+ (file-error
+ (defalias 'spam-BBDB-register-routine 'ignore)
+ (defalias 'spam-enter-ham-BBDB 'ignore)
+ nil))
+
+ (defun spam-enter-ham-BBDB (addresses &optional remove)
+ "Enter an address into the BBDB; implies ham (non-spam) sender"
+ (dolist (from addresses)
+ (when (stringp from)
+ (let* ((parsed-address (gnus-extract-address-components from))
+ (name (or (nth 0 parsed-address) "Ham Sender"))
+ (remove-function (if remove
+ 'bbdb-delete-record-internal
+ 'ignore))
+ (net-address (nth 1 parsed-address))
+ (record (and net-address
+ (bbdb-search-simple nil net-address))))
+ (when net-address
+ (gnus-message 5 "%s address %s %s BBDB"
+ (if remove "Deleting" "Adding")
+ from
+ (if remove "from" "to"))
+ (if record
+ (funcall remove-function record)
+ (bbdb-create-internal name nil net-address nil nil
+ "ham sender added by spam.el")))))))
+
+ (defun spam-BBDB-register-routine (articles &optional unregister)
+ (let (addresses)
+ (dolist (article articles)
+ (when (stringp (spam-fetch-field-from-fast article))
+ (push (spam-fetch-field-from-fast article) addresses)))
+ ;; now do the register/unregister action
+ (spam-enter-ham-BBDB addresses unregister)))
+
+ (defun spam-BBDB-unregister-routine (articles)
+ (spam-BBDB-register-routine articles t))
+
+ (defun spam-check-BBDB ()
+ "Mail from people in the BBDB is classified as ham or non-spam"
+ (let ((who (nnmail-fetch-field "from"))
+ (spam-split-group (if spam-split-symbolic-return
+ 'spam
+ spam-split-group)))
+ (when who
+ (setq who (nth 1 (gnus-extract-address-components who)))
+ (if (bbdb-search-simple nil who)
+ t
+ (if spam-use-BBDB-exclusive
+ spam-split-group
+ nil)))))))
;;;; ifile
@@ -1411,66 +1412,63 @@ Uses `gnus-newsgroup-name' if category is nil (for ham registration)."
;;;; spam-stat
-(condition-case nil
- (progn
- (let ((spam-stat-install-hooks nil))
- (require 'spam-stat))
-
- (defun spam-check-stat ()
- "Check the spam-stat backend for the classification of this message"
- (let ((spam-split-group (if spam-split-symbolic-return
- 'spam
- spam-split-group))
- (spam-stat-split-fancy-spam-group spam-split-group) ; override
- (spam-stat-buffer (buffer-name)) ; stat the current buffer
- category return)
- (spam-stat-split-fancy)))
-
- (defun spam-stat-register-spam-routine (articles &optional unregister)
- (dolist (article articles)
- (let ((article-string (spam-get-article-as-string article)))
- (with-temp-buffer
- (insert article-string)
- (if unregister
- (spam-stat-buffer-change-to-non-spam)
+(eval-when-compile
+ (autoload 'spam-stat-buffer-change-to-non-spam "spam-stat")
+ (autoload 'spam-stat-buffer-change-to-spam "spam-stat")
+ (autoload 'spam-stat-buffer-is-non-spam "spam-stat")
+ (autoload 'spam-stat-buffer-is-spam "spam-stat")
+ (autoload 'spam-stat-load "spam-stat")
+ (autoload 'spam-stat-save "spam-stat")
+ (autoload 'spam-stat-split-fancy "spam-stat"))
+
+(eval-and-compile
+ (when (condition-case nil
+ (let ((spam-stat-install-hooks nil))
+ (require 'spam-stat))
+ (file-error
+ (defalias 'spam-stat-register-ham-routine 'ignore)
+ (defalias 'spam-stat-register-spam-routine 'ignore)
+ nil))
+
+ (defun spam-check-stat ()
+ "Check the spam-stat backend for the classification of this message"
+ (let ((spam-split-group (if spam-split-symbolic-return
+ 'spam
+ spam-split-group))
+ (spam-stat-split-fancy-spam-group spam-split-group) ; override
+ (spam-stat-buffer (buffer-name)) ; stat the current buffer
+ category return)
+ (spam-stat-split-fancy)))
+
+ (defun spam-stat-register-spam-routine (articles &optional unregister)
+ (dolist (article articles)
+ (let ((article-string (spam-get-article-as-string article)))
+ (with-temp-buffer
+ (insert article-string)
+ (if unregister
+ (spam-stat-buffer-change-to-non-spam)
(spam-stat-buffer-is-spam))))))
- (defun spam-stat-unregister-spam-routine (articles)
- (spam-stat-register-spam-routine articles t))
+ (defun spam-stat-unregister-spam-routine (articles)
+ (spam-stat-register-spam-routine articles t))
- (defun spam-stat-register-ham-routine (articles &optional unregister)
- (dolist (article articles)
- (let ((article-string (spam-get-article-as-string article)))
- (with-temp-buffer
- (insert article-string)
- (if unregister
- (spam-stat-buffer-change-to-spam)
+ (defun spam-stat-register-ham-routine (articles &optional unregister)
+ (dolist (article articles)
+ (let ((article-string (spam-get-article-as-string article)))
+ (with-temp-buffer
+ (insert article-string)
+ (if unregister
+ (spam-stat-buffer-change-to-spam)
(spam-stat-buffer-is-non-spam))))))
- (defun spam-stat-unregister-ham-routine (articles)
- (spam-stat-register-ham-routine articles t))
-
- (defun spam-maybe-spam-stat-load ()
- (when spam-use-stat (spam-stat-load)))
-
- (defun spam-maybe-spam-stat-save ()
- (when spam-use-stat (spam-stat-save))))
-
- (file-error (progn
- (defalias 'spam-stat-load 'ignore)
- (defalias 'spam-stat-save 'ignore)
- (defalias 'spam-maybe-spam-stat-load 'ignore)
- (defalias 'spam-maybe-spam-stat-save 'ignore)
- (defalias 'spam-stat-register-ham-routine 'ignore)
- (defalias 'spam-stat-unregister-ham-routine 'ignore)
- (defalias 'spam-stat-register-spam-routine 'ignore)
- (defalias 'spam-stat-unregister-spam-routine 'ignore)
- (defalias 'spam-stat-buffer-is-spam 'ignore)
- (defalias 'spam-stat-buffer-change-to-spam 'ignore)
- (defalias 'spam-stat-buffer-is-non-spam 'ignore)
- (defalias 'spam-stat-buffer-change-to-non-spam 'ignore)
- (defalias 'spam-stat-split-fancy 'ignore)
- (defalias 'spam-check-stat 'ignore))))
+ (defun spam-stat-unregister-ham-routine (articles)
+ (spam-stat-register-ham-routine articles t))
+
+ (defun spam-maybe-spam-stat-load ()
+ (when spam-use-stat (spam-stat-load)))
+
+ (defun spam-maybe-spam-stat-save ()
+ (when spam-use-stat (spam-stat-save)))))