Il 30/04/2017 18:29, Stephan Bosch ha scritto:
Op 4/28/2017 om 10:58 AM schreef Alessio Cecchi:
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" :-) ?
The wiki states the following:
The second query is only necessary when no compiled binary is available
or when the script has changed and needs to be recompiled. The data ID
is used to detect changes in the dict's underlying database.
Thanks now it's all clear :-)
--
Alessio Cecchi
Postmaster @ http://www.qboxmail.it
https://www.linkedin.com/in/alessice