I uspect the problem is in that sieve binaries are only recompiled when the source script is newer than the svbin file, and dict is unable to determine this. Perhaps you should leave ;bindir away for now.
Aki
On April 28, 2017 at 11:58 AM Alessio Cecchi alessio@skye.it wrote:
Hi,
I have setup the latest Dovecot and Sieve with dict in order to read rules from MySQL and works fine:
sieve_before = dict:proxy::sieve;name=activesql;bindir=~/.sieve-bin
dict { sieve = mysql:/etc/dovecot/dovecot-dict-sieve-sql.conf.ext }
# cat /etc/dovecot/dovecot-dict-sieve-sql.conf.ext
connect = host=10.1.1.1 dbname=dovecot user=dovecot password=Ciao map { pattern = priv/sieve/name/$script_name table = user_sieve_scripts username_field = username value_field = id fields { script_name = $script_name } } map { pattern = priv/sieve/data/$id table = user_sieve_scripts username_field = username value_field = script_data fields { id = $id } }
But when I update the rules in mysql sieve continue to apply only the "old" rules stored in the binary. The only way to apply the new rules is to delete the .sieve-bin/activesql.svbin. If I remove ";bindir=~/.sieve-bin" works fine.
This is a cache issue and can be fixed via setting, is an issue or is a "feature" :-) ?
Thanks
-- Alessio Cecchi Postmaster @ http://www.qboxmail.it https://www.linkedin.com/in/alessice