[Dovecot] Status of sieve-extdata?
Hi,
I'd like to ask about status of extdata plugin for sieve. The wiki page (http://wiki2.dovecot.org/Pigeonhole/Sieve/Plugins/Extdata) mentions versions for PigeonHole 0.2 and 0.3, but there seems to be no version for 0.4 and Dovecot 2.2.
Is the plugin dead or is it planned to make version for Dovecot 2.2 (when time allows I guess)?
Regards J.
On 4/29/2014 11:01 AM, Jiri Bourek wrote:
Hi,
I'd like to ask about status of extdata plugin for sieve. The wiki page (http://wiki2.dovecot.org/Pigeonhole/Sieve/Plugins/Extdata) mentions versions for PigeonHole 0.2 and 0.3, but there seems to be no version for 0.4 and Dovecot 2.2.
Is the plugin dead or is it planned to make version for Dovecot 2.2 (when time allows I guess)?
It is not dead, but I haven't seen much interest for it either.
Anyway, I quickly made a v0.4 version:
http://hg.rename-it.nl/pigeonhole-0.4-sieve-extdata/
Regards,
Stephan.
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
Anyway, I quickly made a v0.4 version:
Thank you very much, sorry I won't use it in the end.
On 5/6/2014 1:01 PM, Jiri Bourek wrote:
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
Regards,
Stephan.
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.
Jiri Bourek schreef op 6-5-2014 13:29:
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)
You can use the vnd.dovecot.execute extension to achieve pretty much the same as extdata, e.g. calling a shell script that use command line database query tools such as pgsql, msql or ldapsearch. Be careful with passing parameters though.
Also, the extprograms plugin can be used in global context without problems.
Regards,
Stephan.
participants (2)
-
Jiri Bourek
-
Stephan Bosch