I'm running my qpsmtpd on quite and old and slow machine, and I was thinking it might be an idea to run different sets of plugins depending on the source IP - trusted senders (my internal network) can be sent without spamassassin and clamav and the rest, where mail from external IP's still need full testing.
Now I know this isn't what large-scale users will want to do (ISPs will want to stop their users sending as well as receiving spam) and my internal network could still be subject to trojans etc but subject to the "is this a good idea" comment, I was wondering about the best way to do this. I see the immediate different options to do this as being - run multiple but different qpsmtpd setups on different ports for internal and external users - a single qpsmtpd setup, but use tcprules with tcpserver to set an environment variable which could point at a different config folder in Qpsmtpd::get_qmail_config() - modify individual plugins to do nothing depending on remote-ip - change the core config mechanism to understand some generic "run this plugin if..." mechanism - like above but also let plugins get/set internal state flags per connection and adjust their behaviour #1 is the most easily done, but seems a bit of a dead end. And I'd be loathe to jump in to #5 if there's no general desire to see such a feature and it involves so many patches that no one would adopt it. Is anyone else interested in the idea of dynamically choosing plugin sets ? You may decide, for example, that certain IP ranges should be subject to stricter tests, or that authenticated SMTP conversations are subject to less... Could just throw some more cycles at it, of course... -- T
