On Mon, Jul 25, 2005 at 07:15:37PM +0100, Hereward Cooper wrote: > Hi, > > I was wondering what the status of server side filtering is with DBMail? > I see posts on the subject on various lists but nothing that practical. > > Isn't it quite a commonly used feature in most systems? > > If anyone has other ideas that I could use to filter incoming mail on > the server I would love to hear them. [Setup currently is Exim4+SA > passes the message straight onto dbmail-smtp, so I can't procmail].
You could use an Exim filter in combination with a transport that delivers messages directly to a mailbox using dbmail-smtp. Here's a router that uses a filter stored in the users table dbmail_filter: driver = redirect domains = +dbmail_domains user = Debian-exim allow_filter allow_fail data = ${lookup mysql{ \ SELECT \ filter \ FROM \ users u, \ aliases a \ WHERE \ a.deliver_to = u.user_idnr AND \ u.filter IS NOT NULL AND \ a.alias = '${quote_mysql:[EMAIL PROTECTED]' \ } \ {$value} \ fail} directory_transport = dbmail_mailbox The filter returns an address of the form /user~mailbox/ which is then split up by the transport. dbmail_mailbox: debug_print = "T: dbmail_mailbox for $address_file" driver = pipe command = /usr/sbin/dbmail-smtp -m ${substr_-1:${extract{2}{~}{$address_file}}} -u ${substr_1:${extract{1}{~}{$address_file}}} delivery_date_add envelope_to_add return_path_add user = dbmail group = dbmail return_output I'm not sure if this is working correctly in the latest versions of DBMail, though. See my recent message on the subject: http://mailman.fastxs.net/pipermail/dbmail/2005-July/007045.html. xn