Ok, I'm setting out to create a custom spam control system for our users using
qpsmtpd as the underlying infrastructure. I'm bringing it up here first because:
1) I'm sure somebody has done some or all of this already
2) For any part of the system not already created, I want the design of new
pieces to be modular enough that others find them useful
3) The more eyes there are, the stronger/more stable/feature rich the project
gets.
I have talked about it before on the list, and spurred various discussions,
but I don't recall coming to a consensus on the "best way" or official qpsmtpd
way to do it. I would hope we're at a point (or can get to one) where much of
the resulting work could be contributed back to the main distribution.
Ok, so here goes.
First off is the per-user configuration goal (again). Some users complain of
too much filtering, others complain of not enough. Site-wide bayesian filters
aren't doing the trick, and some people deal with foreign countries more than
others do. So I want to get where users can pick and choose various filter
(i.e. plugins) to use, and even per-user config of said plugin (where
appropriate). I know Gavin has this implemented to some degree, but his
site's per_user_config is at 0.28, and we're running 0.31 (rc2?).
Along with per-user configs for qpsmtpd, I plan to implement per-user
configuration for SpamAssassin. If used at SMTP time, the spamassassin plugin
would need to call spamc with the proper arguments.
At the end of each session, I want to save off the rejection messages (5xx and
some 4xx) in a database for each user so they can see if and when specific
messages are blocked and why, allowing them to add/remove filters at will,
saving me the hassle of tracking down false positives, delays in delivery, and
the ever-elusive black hole that some email seems to fall into. This is
probably where John's (I think they're his) logging work would be useful.
The part that's not necessarily qpsmtpd-centric would be the web-based
interface that glues these pieces together for the user. It would be
Perl-based and borrow from some existing projects.
Qmail is my delivery engine, with vpopmail+mysql handling users, in excess of
4000 maildirs.
Comments, concerns, complaints?
-- Bryan