qmail-spp
provides plug-in support for qmail-smtpd. It allows you to write external programs and use them to checkSMTP
command argument validity. The plug-in can trigger several actions, like denying a command with an error message, logging data, adding a header and much more.
- Author: Pawel Foremski
- More info here
Today I played for the first time with an ancient patch for qmail
: qmail-spp
and I was really impressed for the ease of use and the elegance of its code, which is inserted inside qmail-smtpd.c
with a few touches, despite of the many things that it can do when installed and enabled.
It can run a custom plugin in any language and at any level of the smtp
session, grabbing the environment variables, writing into stderr
or blocking the smtp
session with a return error for the sender.
In no time at all I managed to understand its logic and write a small plugin by adapting a c program I wrote for s/qmail
a few months ago to check the validity of the recipient.
Of course I decided to add this patch to my combo. I've just modified the way it has to be enabled, just not to bother those who don't want to touch their run scripts. So, while the original patch is enabled by default, I modified things a little bit so that you have to manually enable it by exporting the variable ENABLE_SPP
in your run scripts. Therefore the original NOSPP
variable is useless.
Have fun!