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.