
In der Regeldatei gibt es einen Befehl namens stop
, der die Verarbeitung stoppt. Ich bin mir jedoch nicht sicher, warum das nötig ist. Wenn es der letzte Befehl in einer Liste von Anweisungen innerhalb einer Regel ist, ist die Regel dann nicht bereits fertig verarbeitet? Oder bedeutet es, dass nicht zur nächsten Regel in der Liste gesprungen werden soll? Mit anderen Worten, nehmen wir an, meine Sieve-Datei hat eine Liste von Regeln:
Rule A
Rule B
Rule C
Rule D
Wenn Regel B stop
am Ende einen Befehl hat, werden dann die Regeln C und D übersprungen? Und ich gehe davon aus, dass die Regeln in der Reihenfolge ausgeführt werden, in der sie in der Sieve-Datei erscheinen?
Antwort1
Ja, wenn Regel B den stop
Befehl am Ende enthält, werden die Regeln C und D übersprungen.
Die Aktion „Stopp“ beendet alle Verarbeitungen. Wenn das implizite Keep nicht abgebrochen wurde, wird es ausgeführt.
—RFC 5228 Abschnitt 3.3 „Kontrollstopp“
Dies ist nützlich, wenn Sie Spam erkennen und eine Abwesenheitsnachricht oder bestimmte fileinto
Regeln verwenden. Sie können discard
den Spam als Antwort markieren, stop
wodurch alle folgenden Regeln übersprungen werden, was bedeutet, dass Sie nicht über Ihre Abwesenheitsregel antworten und die E-Mails nicht über Fileinto-Regeln in ein anderes Postfach verschoben werden.
Wenn Sie verwenden if
, elsif
können Sie dieses Problem vermeiden.