[Dovecot] deploying dspam
Johannes Berg
johannes at sipsolutions.net
Thu Dec 16 14:05:23 EET 2004
Curtis Maloney schrieb:
> I was about to chime in and say "I think people missed your point."
Thanks. At least someone... ;-)
> It never came across to me that you were wanting something specific
> with dpsam... more that you wanted an explicit trigger for when a user
> decided something was/wasn't SPAM. And I, personally, love the idea.
Right. I don't care if its SA or dspam or bogofilter. Hey, I was just
evaluating dspam because SA is killing me with its overhead, so I'll be
coding for dspam.
> So, let me see if I fully understand how you want it to go:
> 1) mail hits your MTA, which hands it off to dspam
> 2) dspam munges it, decides if it's SPAM or HAM, and delivers it
> to the user, either in INBOX or SPAM
> 3) if the USER moves a messages into SPAM, dspam is notified it
> missed a message, and retrains on it.
> 4) if the USER moves a message out of SPAM, dspam is notified it
> got a false-positive, and retrains on it.
Precisely. Add a step to clean up the SPAM folder once a while.
> Seems to me it will possibly lower the overall load, since you will
> only rescan/retrain messages _explicitly_ changed from/to SPAM/HAM.
> Now, if only you could get some resident form of dspam, so you didn't
> have to keep spawning it.... or did I miss something in the docs?
> Then again, there's libdspam...
Yeah, though both these options kinda suck. Spawning dspam gives you all
the benefit of the command line client (it reads config files etc.)
while using libdspam makes it in-process. I'm looking at making another
dspam library that encapsulates more functionality of the dspam client
(ie. the config file reading etc.) and using that in-process with
dovecot, I'll kick that idea around the dspam-dev list. Also, I'd link
that library into my MTA (exim). The rationale for that idea is to
centralize dspam's configuration while still using it from within
multiple processes. There's one catch: This system will require that
dspam stores the signature in the header (that way I can use dovecot's
API to extract it and pass it to libdspam w/o retrieving the whole message).
Also, dspam appears to store the messages in its database, so I was
thinking of making a dspam-database dovecot storage plugin as well (or
integrate that with the dspam plugin I need to write anyway). That way,
those emails are only stored once. I haven't figured out what it stores
though, whether all messages, to a certain limit, only spam, or .....
Needs some thinking, probably, and for a start, I'll just deliver the
spam-messages to another maildir and make a namespace for it.
Oh, and I'll have to prohibit APPENDing to the spam box, if some
braindead imap clients moves by fetch/append/delete then that's their
problem, but APPEND is kinda hard to manage I think (as per timo's
message about append).
johannes
More information about the dovecot
mailing list