(eval-when-compile (require 'cl))
(eval-when-compile (require 'spam-report))
(eval-when-compile (require 'hashcash))
-(eval-when-compile (require 'ietf-drums))
(require 'gnus-sum)
;;{{{ convenience functions
-;;; function to wrap address parsing, uses the ietf-drums-parse-address interface
-(defun spam-parse-address (who)
- (condition-case nil
- (ietf-drums-parse-address who)
- (error nil)))
-
(defun spam-clear-cache (symbol)
"Clear the spam-caches entry for a check."
(remhash symbol spam-caches))
"Enter an address into the BBDB; implies ham (non-spam) sender"
(dolist (from addresses)
(when (stringp from)
- (let* ((parsed-address (spam-parse-address from))
- (name (or (car-safe (cdr-safe parsed-address)) "Ham Sender"))
+ (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 (car-safe parsed-address))
+ (net-address (nth 1 parsed-address))
(record (and net-address
(bbdb-search-simple nil net-address))))
(when net-address
(intern (downcase (symbol-name symbol)) bbdb-cache))
bbdb-hashtable))))
(puthash 'spam-use-BBDB bbdb-cache spam-caches)))
- (setq who (car-safe (spam-parse-address who)))
(when who
+ (setq who (nth 1 (gnus-extract-address-components who)))
(if
(if spam-cache-lookups
(intern-soft (downcase who) bbdb-cache)
(forward-line 1)
;; insert the e-mail address if detected, otherwise the raw data
(unless (zerop (length address))
- (let ((pure-address (car-safe (spam-parse-address address))))
+ (let ((pure-address (nth 1 (gnus-extract-address-components address))))
(push (or pure-address address) contents)))))
(nreverse contents))))