Off-site alpha test of mail filtering

Thank you to everyone who agreed to test this new code. It is *VERY EXPERIMENTAL* - read the comments at the top of junkmail.c for a lot of caveats.

There isn't much to do before you type make; just edit one line in Makefile to insert your local email domain and the name of your smart SMTP host. (This is a throwback to the origins of the package in a different set of programs which needed to send mail; this infelicity will be removed in later versions). There are also some exceptions to the spam rules in junkmail.c that are customised to my local site (search for vt.com) - you'll probably have to make similar mods for your own site. I could have made this more portable but I wouldn't have released the code today if I did. That's the price you pay for being an alpha tester ;-)

Once built, install the binary as something like /usr/local/bin/junkmail (no special privs needed), and set up a test user with a .forward file to invoke procmail, and a procmailrc like the one supplied here. Of course, be sure to edit it to suit your own config. Don't ask me questions about procmail; this is alpha test - you're expected to know or work out stuff like that on your own. I'll hand out better instructions about procmail when we get to beta testing and final release. When installing procmail, be sure to also install the related utility, formail.


Now, finally, here is the code. First time out, fetch the tar file.

If you work on Unix and getting binaries via a web browser on a PC is a pain, but you have lynx, then try the command: lynx -source -dump http://www.gtoal.com/spam/tispa-private/dist.tar > dist.tar


What I expect from the testers is a critique of any parts of the code that need major work because they're fundamentally flawed; I know of a couple already that I've remarked on in junkmail.c; handling of local mail is a big one; mailing list mail can sometimes be problematic too. Please identify areas of problems, offer solutions, and generally help to make it a portable system that will work at sites other than mine. However in the short term you will need to hack junkmail.c the same way I did to make exceptions for your home sites, etc.

I also want examples of spams that this code does't get (mail them with full headers to spam@vt.com) and suggestions of new rules for catching them. What I've tried to do here is make rules as general as possible so that one rule catches many spams; I don't want to hard-code the names of specific spammers into this if I can at all help it. The more general it is, the less daily maintenance it needs.


NOTE: you can run the junkmail program in diagnostic mode by typing junkmail -t < /var/mail/mymailbox
At the moment it only tells you of the first spam sign it found, but I'll be improving the diags in later versions.
This page is maintained by Graham Toal