在 sieve 中添加每个域的过滤器

在 sieve 中添加每个域的过滤器

如何在 sieve/dovecot 中设置每个域的过滤器?

在文档中,我可以看到每个用户的设置:sieve = ~/.dovecot.sieve,现在我正在使用全局过滤器:sieve_before = /etc/dovecot/sieve/global 。但是,我希望能够根据域设置过滤器。

答案1

简而言之,你不能。

Dovecot 仅允许全局和每个用户的筛选。

before/default/after筛选是全局的,适用于每条消息。如果您确定要以相同的方式处理所有消息,则必须设置过滤器sieve_before,而不是default。但这里有一个没有得到很好解释的陷阱。

sieve_before可能包含多条规则。将应用第一个匹配的规则,并停止筛选处理。如果您希望将消息传递给筛选user进行额外过滤,则必须将动词添加keep到特定规则的末尾。

require "fileinto";
# rule:[some_domain]
if header :contains "From" "some.domain.tld"
{
  fileinto "some_domain_tld";
  keep;
}
elseif . . . . . 
{
    . . . . .
   keep;
}
else
{
   keep;
}

如果keep省略了动词,则筛选引擎将把它视为隐式动词stop,并且消息不会传递给user筛选器。

相关内容