Email

在篩子中添加每個域的過濾器

  • August 5, 2014

如何在 sieve/dovecot 中設置每個域的過濾器?

在文件中,我可以看到每個使用者的設置:sieve = ~/.dovecot.sieve,現在我正在使用全域過濾器:sieve_before = /etc/dovecot/sieve/global。但是,我希望能夠為每個域設置過濾器。

簡而言之 - 你不能。

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’s 篩子。

引用自:https://serverfault.com/questions/605326