To start out with, I'm sure somebody out there has noticed that you're not reading "walkingsaint.blogspot.com" but rather "walkingsaint.com" - a domain registered to ME. Part
WalkingSaint.com is running this blog (currently through
Blogger.com, but part of it is the technical project that is the server underneath my blog. As I've noted before, I run this server (and
move it around all the time) as an exercise in the skills I've learned; it's fun and I get to implement knowledge in a hands-on way.
Well, besides being a web server, this computer is also an email server for me. It's not a very good one inasmuch as it's currently hosted on a home cable modem, which means it's bound to show up on a
blacklist by that fact alone. (Email blacklists are lists that some mail servers look at to see if they should just automatically reject mail from that server.) However, like I said, this is as much a technical project as it is an actual server.
So my latest feat was implementing a satisfactory anti-spam routine. Since I receive email here I also get a lot of spam (for no particularly good reason) and I'm tired of having that clog up my mailbox. This server is running
Fedora Core 5 with
Postfix and
SpamAssassin, a free spam-detection program.
It took me a while to figure out what I was doing with this and how I wanted to set it up. Thankfully, the tools in Fedora Core are frightfully easy to actually install. The catch is that SpamAssassin will DETECT email, but I have to make it do something one it's detected. I didn't want to run a bunch of different utilities to move the spam around, nor did I really want to even have a "junk e-mail" folder. All I wanted was to have spam (or likely spam)
not show up. To that end I've decided that any mail that is probably spam won't even be delivered to me.
Here's what I did.
1) Configured Postfix with integrated spamd/spamc per
this document.
2) Configured SpamAssassin to mark likely spam with a [*SPAM*] in the subject line.
3) Postfix will accept the mail, run it through the content filter (SpamAssassin), then take the mail back and deliver it. I set up a simple
"header check" such that any mail that has [*SPAM*] in the Subject line will be re-directed to a specific user account (something like "spamking".)
4) Once a week, I run the SpamAssassin spam learning tool (sa-learn), which updates its lists of
Bayes definitions; essentially it learns what spam looks like in order to detect it better.
It's all fun and good and it seems to work now... let's see how it continues!