It is not dead, but I haven't seen much interest for it either.

Well I was thinking about switching from dovecot-lda to LMTP and use
the extdata plugin to check whether the message should go through
spamc (via extprograms filter extension). All that in sieve_before script

That proved problematic though. Sieve is unable to use pgsql as data
source, so I needed to go for proxy which in turn needed to make dict
socket world writable (out of curiosity, is there a way to run second
dict service with different dictionaries?)

After some more testing I found out that I'm unable to come up with
working dictionary definition - username_field passes username as one
value (whereas I have user and domain parts in different tables.)
Tried using the fields {} section but that seems unusable as well,
because extdata uses priv/something pattern and fields section
requires you to use $variable which is - I assume - taken from pattern
like this: priv/something/$variable

(I may be mistaken here, as hard as I tried, I was unable to find any
documentation on how that map {} definition should look like)

Anyway, I already have some scripts that convert sieve settings stored
in database into .dovecot.sieve file so I'll take care of running
spamc this way

This is another, much more powerful option:

http://wiki2.dovecot.org/Pigeonhole/Sieve/Plugins/Extprograms

I know, I was about to use this plugin in any case - specifically the vnd.dovecot.filter. The difference is that with extdata I could put the filter call into separate script and call that script as sieve_before (thus setting it globally for every user on the server with extdata deciding if the filter call should be done)

Without extdata I'll need to check user's settings and generate .dovecot.sieve with filter call in case user requests it. That's not difficult of course, I just thought extdata might be a bit more elegant way of doing this.


Regards,

Stephan.

Reply via email to