Wie kann ich einen Domänenfilter in Sieb/Dovecot einrichten?

In der Dokumentation kann ich die Einstellung pro Benutzer sehen: sieve = ~/.dovecot.sieve, und im Moment verwende ich den globalen Filter: sieve_before = /etc/dovecot/sieve/global . Ich möchte jedoch in der Lage sein, Filter pro Domänenbasis einzurichten.

answer

Kurz gesagt - Sie können nicht.

Dovecot erlaubt nur globale und benutzerspezifische Siebe.

before/default/afterSiebe sind global und werden auf jede Nachricht angewendet. Wenn Sie sicher sind, dass Sie alle Nachrichten gleich verarbeiten möchten, müssen Sie den sieve_beforeFilter einrichten , nicht die default. Aber hier gibt es eine nicht gut erklärte Falle.

sieve_beforekann aus mehreren Regeln bestehen. Die erste übereinstimmende Regel wird angewendet und die Siebverarbeitung wird gestoppt. Wenn Sie dann die Nachricht zur userzusätzlichen Filterung an das Sieb übergeben möchten, müssen Sie das Verb keepam Ende einer bestimmten Regel hinzufügen .

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

Wenn das keepVerb weggelassen wird, behandelt die Sieb-Engine dies als implizites Verb stopund die Nachricht würde nicht an das userSieb von ' übergeben.