Say you want to add a new back end called blackbox. For filtering incoming mail, provide the following:
(defvar spam-use-blackbox nil "True if blackbox should be used.")
Write spam-check-blackbox
if Blackbox can check incoming mail.
Write spam-blackbox-register-routine
and
spam-blackbox-unregister-routine
using the bogofilter
register/unregister routines as a start, or other register/unregister
routines more appropriate to Blackbox, if Blackbox can
register/unregister spam and ham.
The spam-check-blackbox
function should return ‘nil’ or
spam-split-group
, observing the other conventions. See the
existing spam-check-*
functions for examples of what you can
do, and stick to the template unless you fully understand the reasons
why you aren’t.
For processing spam and ham messages, provide the following:
Note you don’t have to provide a spam or a ham processor. Only provide them if Blackbox supports spam or ham processing.
Also, ham and spam processors are being phased out as single
variables. Instead the form (spam spam-use-blackbox)
or
(ham spam-use-blackbox)
is favored. For now, spam/ham
processor variables are still around but they won’t be for long.
(defvar gnus-group-spam-exit-processor-blackbox "blackbox-spam" "The Blackbox summary exit spam processor. Only applicable to spam groups.") (defvar gnus-group-ham-exit-processor-blackbox "blackbox-ham" "The whitelist summary exit ham processor. Only applicable to non-spam (unclassified and ham) groups.")
Add
(const :tag "Spam: Blackbox" (spam spam-use-blackbox)) (const :tag "Ham: Blackbox" (ham spam-use-blackbox))
to the spam-process
group parameter in gnus.el
. Make
sure you do it twice, once for the parameter and once for the
variable customization.
Add
(variable-item spam-use-blackbox)
to the spam-autodetect-methods
group parameter in
gnus.el
if Blackbox can check incoming mail for spam contents.
Finally, use the appropriate spam-install-*-backend
function in
spam.el
. Here are the available functions.
spam-install-backend-alias
This function will simply install an alias for a back end that does
everything like the original back end. It is currently only used to
make spam-use-BBDB-exclusive
act like spam-use-BBDB
.
spam-install-nocheck-backend
This function installs a back end that has no check function, but can
register/unregister ham or spam. The spam-use-gmane
back end is
such a back end.
spam-install-checkonly-backend
This function will install a back end that can only check incoming mail
for spam contents. It can’t register or unregister messages.
spam-use-blackholes
and spam-use-hashcash
are such
back ends.
spam-install-statistical-checkonly-backend
This function installs a statistical back end (one which requires the
full body of a message to check it) that can only check incoming mail
for contents. spam-use-regex-body
is such a filter.
spam-install-statistical-backend
This function install a statistical back end with incoming checks and
registration/unregistration routines. spam-use-bogofilter
is
set up this way.
spam-install-backend
This is the most normal back end installation, where a back end that can
check and register/unregister messages is set up without statistical
abilities. The spam-use-BBDB
is such a back end.
spam-install-mover-backend
Mover back ends are internal to spam.el
and specifically move
articles around when the summary is exited. You will very probably
never install such a back end.