I've been thinking for the past little bit (a dangerous habit, I know), and came up with an idea that should fit seamlessly into qpsmtpd, vpopmail, spamassassin, etc. I'm curious if other developers have already done something like the idea I'm about to describe, or if it's something that needs starting.

Many of my customers complain about too much email being blocked from the various block lists and email filters, or that not enough email is being caught. To solve this problem one would need per-user and/or per domain controls.

My thought is to create a suite of scripts that uses a user database (such as vpopmail's) for customer and/or domain preferences. The FiltersToUse table would look something like this:

user               filtername    filtervalue       action
---------------    ------------  ----------------  ------
[EMAIL PROTECTED]    dnsbl         dnsbl.njabl.org   block
[EMAIL PROTECTED]    dnsbl         bl.spamcop.net    tag
[EMAIL PROTECTED]    spamassassin  5                 tag
[EMAIL PROTECTED]    spamassassin  10                block
@bbsc.net          spamhelo      myipaddress       block
@bbsc.net          spamhelo      dynamichost       tag

The idea would mean a not-so-strict set of rules for the early plugins; all of their blocking would have to wait until RCPT or MAIL was called.

Blocked servers would be given a 550, "Sorry, the user/domain you are trying to communicate with has chosen to block this message for one or more reasons:..." (wording subject to change).

If the filter chooses to wait until MAIL is processed, then the mail can be saved in an IMAP Junk folder (maildir) that can be downloaded via IMAP or from the web with IMP, SqWebmail, etc. One would then make a cron job to clean junk from the junk folders after a couple of days/weeks.

Suggestions, ideas? I'm hoping to start this between now and the beginning of next year, but don't expect to have much until January. ;)

-- Bryan




Reply via email to