Hi, I see http://johannes.sipsolutions.net/Projects/dovecot-antispam and http://blog.cynapses.org/2007/09/13/dovecot-dspam-plugin/ solutions. Second git repo is not answer, first one is cloned, but I see some drawbacks with it. Dspam backend is more native solution but libdspam using instead of dspam external binary looks like preffered way to integrate dspam. Another problem is waiting for dspam child process exit, so IMAP session is blocked. Why not to fork and forget dspam child process? Email sender backend is non-blocking, but using MTA is great overhead. Calling external program with some args and mail body via pipe can be more suitable way, so external program may be dspam binary directly or shell/perl/python filter to any antispam engine via sendmail or something else. Has anybody plans to implement this features or it will be better to try it myself?
> I see http://johannes.sipsolutions.net/Projects/dovecot-antispam and > http://blog.cynapses.org/2007/09/13/dovecot-dspam-plugin/ solutions. > Second git repo is not answer, first one is cloned, but I see some > drawbacks with it.The first git repo is my source, and the second one is Andreas's but I think last he was working on integrating libdspam into my antispam plugin.> Dspam backend is more native solution but libdspam using instead of > dspam external binary looks like preffered way to integrate dspam.Not really. libdspam pretty much sucks. you're entitled to your own opinion :)> Another problem is waiting for dspam child process exit, so IMAP > session is blocked. Why not to fork and forget dspam child process?Because we need to know whether it liked us?> Email sender backend is non-blocking, but using MTA is great overhead. > Calling external program with some args and mail body via pipe can be > more suitable way, so external program may be dspam binary directly or > shell/perl/python filter to any antispam engine via sendmail or > something else. > > Has anybody plans to implement this features or it will be better to > try it myself?Go ahead. I don't think it's good wrt. error reporting so I probably wouldn't integrate it unless it's really clean code :) joahnnes -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 828 bytes Desc: This is a digitally signed message part URL: <http://dovecot.org/pipermail/dovecot/attachments/20071119/cb8f8a6d/attachment-0002.bin>
Johannes Berg wrote:>> Another problem is waiting for dspam child process exit, so IMAP >> session is blocked. Why not to fork and forget dspam child process? >> > > Because we need to know whether it liked us? >But it's slow. Especially with bulk moves - I had users complain about this so often that I ended up moving to DMT style batch processing using the code here: http://members.plug.org.au/~linuxalien/dokuwiki/projects:dovecot-mysql-dspam-plugin Users are happy - it's fast, and let's be honest - the majority of users really don't care if there's some transient error with the spam classifier, they just find it confusing. And if there are errors, you can have them reported by the daemon or cron job that processes the batch data.