« XMail | Main | Bouncy Bouncy »

05 October 2004

XMail Spambayes

Who are these people who send me mail: ulycufueohvx@proxad.net, dndpfk@anet.net, ltw707oga@chollian.net?

XMail offers a mechanism to run message filters during an SMTP session. There are several XMail filters available that invoke SpamAssassin, written in Perl, and one that does SPF, written in Python.

It is quite easy add to an SMTP filter to XMail. Here's my Spambayes filter which took just several minutes to write, and I've never seen Spambayes before this. It seems to work, too.

#!/usr/bin/env python

import sys
from spambayes import hammie

hammie_db = '/usr/local/pkg/xmail/hammie.db'

REJECT = 3

def main(argv):
    if len(argv) != 2:
        sys.exit(0)
    filter = hammie.open(hammie_db)
    spam_prob =  filter.score(open(argv[1]))
    if spam_prob >= 0.5:
        sys.exit(REJECT)
    
if __name__ == '__main__':
    main(sys.argv)

hammie.db is the output of sb_mboxtrain.py.

If the filter finishes with exit code 3, XMail drops the message without spooling it to the user mailbox; any other exit code causes XMail to accept the message. A filter may modify the message data, e.g., do the regular Spambayes thing of adding an X-Spam-BlahBlah header.

To turn the filter on, edit the file filters.post-data.tab thusly:

"/usr/local/bin/sb_xmail.py"    "@@FILE"


Posted by ngps at 09:30 | Comments (0) | Trackbacks (0)
Comments
There is no comment.
Trackbacks
Please send trackback to:http://sandbox.rulemaker.net/ngps/128/tbping
There is no trackback.