我创建了一些筛选(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-test
如何定义 sieve_global_dir 以便由和读取sievec
?
提前致谢
答案1
根据 wiki 的部分内容和阅读 dovecot.org 的一些源代码:
http://wiki.dovecot.org/LDA/Sieve/Dovecot
...你应该能够做类似的事情:
export SIEVE_DIR=/some/path
export SIEVE_GLOBAL_DIR=/some/other/path
sievec -d -P /some/file.sieve
源代码很复杂,但如果我正确阅读 Pigeonhole 筛选源代码,lib-sieve/plugins/environment/ 代码将读取您定义的任何内容,并且 sievec 在运行时会检查在环境之外设置这两个值。但我无法确认这一点,因为我没有安装它来测试,YMMV。
答案2
抱歉,但我认为该解决方案不正确。
在 dovecot 2.xx 中执行
export SIEVE_GLOBAL_DIR=/some/other/path
不起作用。
我已将以下行添加到 dovecot.conf 文件(在plugin
部分内):
sieve_global_dir=/etc/dovecot/sieve/
一切想法都有效!
显然该路径必须包含一个sieve.global
文件。
谢谢。