I'm trying to test a more modular approach to using sieve scripts on my mail server.
Previously I used .dovecot.sieve for everything but I now have conflicting requirements and I thought I'd test having a master script and including multiple includes.
It is dovecot 2.0.9.
I set the following:
sieve = ~/.dovecot.sieve
sieve_dir = ~/sieve
When I do what I need directly in the .dovecot.sieve file it all works fine. But I just tried changing it to the following instead:
require ["include"];
include :personal "filing";
include :personal "vacation";
And when I compile it I get the following error:
# sievec .dovecot.sieve
.dovecot: line 2: error: included personal script 'filing' does not exist.
.dovecot: line 3: error: included personal script 'vacation' does not exist.
.dovecot: error: validation failed.
But they do exist:
# ls -l sieve total 8
-rwxrwxrwx 1 root root 390 Aug 23 14:53 filing.sieve
-rwxrwxrwx 1 root root 740 Aug 23 15:04 vacation.sieve
So why is dovecot not seeing the includes?
I have tried chmod 777 in case it's permissions but that didn't help.
I've tried absolute path names, and putting the include files in different locations, renaming them to not have the sieve suffix, explicitly calling them WITH the sieve suffix but nothing works.
I can't use global because these are account specific requirements.
Does anyone have any ideas why the sievec is failing?