Recently I had to move my mail domains off an external server and on to my own. It was an old Courier-MTA based implementation, and while there was supposed to be some kind of spam control, it obviously didn't have much impact, giving me several hundreds unsolicited mails to remove every day.
Now, there are a lot of options when deciding what to do with your mail, but I decided to try out qpsmtpd, it being Perl based and me having heard good things about it from people i respect.
I installed it, looked around and wrote some plugins for my special purposes. There are several plugins included in the distribution, and while the API documentation isn't obvious to find, you can mostly guess what is going on from the plugin code. I wanted to keep some of my p
revious Courier implementation and user database, but opted for another MTA.
One of Qpsmtpd's claims to fame is that it will detect wrong connections and bad senders very early in the process. This means that the server will save a lot of CPU and disk power simply because the you will receive almost only the real emails, not spam.
My conclusion: Qpsmtpd is fun. It is completely plugin based, so it will handle you the transaction at various stages of the mail receipt process and lets you have a go at it without limiting you unnecessarily. You decide what to do with the connection, and where to put the mes
sage.
The fun thing about Qpsmtpd is that it seems to be a well kept secret. People don't talk out loud about it. There is almost no CPAN presence, and you have to search to find a hidden (but active) mailing list.