{ Hi! I'm Mike }
I'm a core developer with The Horde Project and a founding parter of Horde LLC - the company behind the world's most flexible groupware platform. This is my personal blog full of random thoughts about development and life in general.
August 20, 2007

Frustrated with spam? Try Dspam.

Like most people, I've become very frustrated at the amount of spam that has found it's way into my inbox. For about a year now, I've been using a greylisting technique, along with various MTA tweaks to limit the amount of spam that makes it through. You can read more about this on my (still rough) VPS migration page. This has been very effective overall, but lately I've been seeing a huge increase in the number of spam emails that make it through. I decided it was time to do some content filtering.

I considered trying SpamAssasain since it seemed to be so popular, but was concerned with resource usage, as my mail server is on a virtual private server that is shared by others, and in addition to not having any swap space on our VPS accounts, I wanted to be a good VPS neighbor.

After reviewing some options, I decided to use the Dspam package. I'm not going to get into comparing effectiveness of various spam detection techniques, as that is available in many other places. What I will say is that the statistical method used by Dspam is far less resource intensive than SpamAssasain's method. While I was at it, I decided to add automatic virus scanning to the mix as well using the ClamAV package running as a daemon.

In a nutshell, I now have email coming into Postfix, which performs it's own checks (including greylisting), then hands the email off to Dspam for delivery. Dspam then does it's own checks (including running the email through ClamAV) then hands the mail off to Procmail for actual delivery.

User's can train dspam by forwarding incorrectly tagged mail to either a spam@ or ham@ address.  It's only been running for a few days now, so I don't have much data to report on....but I'll post up some data when it's available.

 I put a HOWTO up on my wiki to describe everything I did to set this up since I do not want to have to dig through all that documentation again.  Hopefully, it will help someone else!  Check it out on the DspamNotes page on the wiki.