SpamBayes and Mutt

So I got 400 spams the other day. This finally convinced me that my “just delete them, it doesn’t take long” policy doesn’t work. Something better is required. Now, I use SpamBayes at work (Windows shop, so I like the Outlook plugin), and thought I’d use it at home too. I use mutt as my mail client. So, here’s what I’ve done so far: Installed procmail: apt-get install procmail Got spambayes: download and unpack the archive into $HOME/src/spambayes Created a sb_filter shell script that invokes SpamBayes’ filter:

1
2
#!/bin/bash
PYTHONPATH=$HOME/src/spambayes/spambayes $HOME/src/spambayes/spambayes/scripts/sb_filter.py -d $HOME/.hammie.db $*

Told procmail to filter my mail through SpamBayes, by putting in \$HOME/.procmailrc:

PYTHONPATH=$HOME/src/spambayes/spambayes
:0fw:hamlock
| $HOME/src/spambayes/spambayes/scripts/sb_filter.py -d $HOME/.hammie.db

Set up keybindings for mutt: I use “s” to save the current message into a folder, and I never save spam into a folder, so I want to train any saved message as ham (non-spam). I bind “S” to mean “this is spam, so train it as spam and then delete it“. In .muttrc:

## Lower case s saves the message after training it as ham.
    ## Upper-case S deletes the message after training it as spam.

    macro index s "|sb_filter <del>g -f > /dev/nulln<save</del>message>"
macro pager s "|sb_filter <del>g -f > /dev/nulln<save</del>message>"
color index red black "~h 'X-Spambayes-Disposition: spam' ~F"

    macro index S "<delete-message>|sb_filter -s -f > /dev/nulln"
macro pager S "<delete-message>|sb_filter -s -f > /dev/nulln"



    Stop Mutt saying "Press any key to continue" after training
set wait_key=no

And that’s it. I still have to delete all my spam, but now SpamBayes is learning what spam is. Once I’ve been doing this for a little while, I’ll alter my .procmailrc (as dictated on the SpamBayes site) to automatically file spam in a “spam” folder.

I'm currently available for hire, to help you plan, architect, and build new systems, and for technical writing and articles. You can take a look at some projects I've worked on and some of my writing. If you'd like to talk about your upcoming project, do get in touch.

More in the discussion (powered by webmentions)

  • (no mentions, yet.)