Hi,

Dovecot version is 2.3.19.1 (9b53102964) running on fully up-to-date Debian 12 
(Bookworm) operating system.


For the life of me I cannot figure out how to get sieve scripts working 
correctly in a central directory location. Calling them from users’ home 
directories works fine (as described below).

(Note: This system has recently been migrated from Cyrus IMAP, so some of the 
directories for a central location are very similar to what would find in a 
standard Cyrus IMAP installation.)


If I set `sieve` to its default value of `file:~/sieve;active=~/.dovecot.sieve` 
in `conf.d/90-sieve.conf`, sieve works as expected. I have a file 
`~/sieve/default.sieve` and, as per documentation, I make a symbolic link 
`~/.dovecot.sieve` that points to that file. The sieve script runs, and I see a 
`default.svbin` either created or updated in the ~/sieve directories as emails 
arrive.

Setting `sieve` to `file:~/lib/sieve;active=~/.dovecot.sieve` also works as 
expected. So this verifies I can change the directory where sieve scripts are 
stored.

However, if I then set `sieve` to 
`file:/var/spool/dovecot/home/%1n/user/%n/sieve;active=file:/var/spool/dovecot/home/%1n/user/%n/.dovecot.sieve`,
 again a `default.sieve` in each of these user’s centralized `sieve` 
directories, sieve scripts silently fail to run. No messages of any kind found 
in any log files.

So, with the same exact same configuration as one that is the default and as 
proven to working, with the single exception of changing the top-level 
directory (TLD) for the scripts, results in silent failure. Why? 

What I find particularly odd is that if I keep `sieve` set to this central 
directory location (i.e., no config changes), and `mv sieve/default.sieve 
sieve.tmp; rmdir sieve; mv sieve.tmp`, that is, have a *file* called `sieve` 
where the setting `sieve` points to (which, per docs and experience, should be 
a *directory*), the users’ sieve scripts *do* run, but with a warning along the 
lines of `Warning: sieve: file storage: Explicitly specified active script path 
`file:/var/spool/dovecot/home/m/user/morse/.dovecot.sieve' is ignored; storage 
path `/var/spool/dovecot/home/m/user/morse/sieve' is not a directory`.

In the docs I see that `sieve` used to refer to a file (PidgeonHole Sieve 
v.0.31 or prior, I believe), and there is mention of a a `sieve_dir` setting 
(which I have *never* set or used). So my guess is that sieve working in this 
centralized TLD with `sieve` as a file rather than directory is due to support 
for some deprecated config / functionality.

I have fiddle around with this for some hours, including setting and not 
setting `mail_home` to the central directory location (i.e., `mail_home` in 
`conf.d/10-mail.conf` set to the same value as `sieve` in 
`conf.d/90-sieve.conf`),to no avail. No matter what I do, I cannot get sieve 
scripts to run in a centralized directory location as they do under `/home`. 
The only exception is as just described in the preceding paragraph. But the 
solution only allows a user to have a single sieve script, and I imagine 
`managesieve` will not work properly is sieve is set up as described in the 
preceding paragraph.

What am I missing or doing incorrectly?

Any and all assistance most appreciated.

Doug

_______________________________________________
dovecot mailing list -- dovecot@dovecot.org
To unsubscribe send an email to dovecot-le...@dovecot.org

Reply via email to