(setq nnmail-split-methods 'nnmail-split-fancy)
(if (string= "billwlx" (getenv "HOSTNAME"))
    (setq spamassassin-script "/home/usr0/billw/bin/spamassassin/spamassassin"
          spamassassin-rules "/home/usr0/billw/bin/spamassassin/rules")
  (setq spamassassin-script "/home/billw/bin/SpamAssassin/spamassassin"
        spamassassin-rules "/home/billw/bin/SpamAssassin/rules"))
(defun spamassassin-on-message ()
  ;; use " *nnmail incoming*" while splitting crash-box
    (if (get-buffer " *nnmail incoming*")
        (set-buffer " *nnmail incoming*")
  ;; use gnus-original-article-buffer while respooling & tracing
      (set-buffer gnus-original-article-buffer))
    (call-process-region (point-min) (point-max)
                         spamassassin-script
                         t t t
                         "-P" "-c" spamassassin-rules)
    (goto-char (point-min))
    (when (re-search-forward "^X-Spam-Status: Yes" nil t)
      "spamassassin"))
(setq nnmail-split-fancy
      '(|
        ("to" ".*billw@wri\\.com" "spamtrap")
        (from ".*Dan Largent.*" "personal")
        (from ".*Michelle Largent.*" "personal")
        ("Subject" ".*Voice mail waiting for x.*" "voice-mail")
;[...]
        ("sender" "owner-ding@hpc\\.uh\\.edu"
         (: (lambda nil (format-time-string "gnus.%Y.%m"))))
        (any "owner-wri-\\b\\(\\w+\\)" "wri.\\1")
        (: spamassassin-on-message)
        (: (lambda nil (format-time-string "mail.misc.%Y.%m")))))
