
Я создал несколько скриптов фильтров sieve (реализация dovecot) и хочу протестировать их с помощью sieve-test.
Все скрипты, использующие глобальные включения, завершаются сбоем со следующим сообщением
Error: sieve: include: sieve_global_dir not set for :global script include (wanted script 'bugzilla.sieve')
Параметр sieve_global_dir задается в dovecot.conf, и включение работает при запуске с помощью deliver
.
Как определить sieve_global_dir, что он читается sieve-test
и sievec
?
заранее спасибо
решение1
Согласно частям вики и небольшому прочтению исходного кода с dovecot.org:
http://wiki.dovecot.org/LDA/Sieve/Голубушка
...вы должны быть способны сделать что-то вроде:
export SIEVE_DIR=/some/path
export SIEVE_GLOBAL_DIR=/some/other/path
sievec -d -P /some/file.sieve
Исходный код сложный, но если я правильно прочитал исходники Pigeonhole sieve, то код lib-sieve/plugins/environment/ будет считывать все, что вы определите, а sievec проверяет установку этих двух значений из окружения при запуске. Я не могу этого подтвердить, так как у меня он не установлен для тестирования, YMMV.
решение2
Извините, но я не думаю, что это правильное решение.
В голубятне 2.xx делаем
export SIEVE_GLOBAL_DIR=/some/other/path
не сработает.
Я добавил следующую строку в файл dovecot.conf (внутри раздела plugin
):
sieve_global_dir=/etc/dovecot/sieve/
И каждая мысль работает!
Очевидно, этот путь должен содержать sieve.global
файл.
Спасибо.