
ルール ファイルには、処理を停止する というコマンドがありますstop
。ただし、なぜこれが必要なのかはわかりません。ルール内のディレクティブ リストの最後のコマンドである場合、ルールの処理はすでに完了しているのではないでしょうか。それとも、リスト内の次のルールにスキップしないという意味でしょうか。言い換えると、私の sieve ファイルにルールのリストがあるとします。
Rule A
Rule B
Rule C
Rule D
ルール B のstop
最後にコマンドがある場合、ルール C と D はスキップされますか? また、ルールは sieve ファイルに表示されている順序で実行されると想定していますか?
答え1
はい、ルール B のstop
最後にコマンドが含まれている場合、ルール C と D はスキップされます。
「停止」アクションはすべての処理を終了します。暗黙的な保持がキャンセルされていない場合は、それが実行されます
。—RFC 5228 セクション 3.3「制御停止」
これは、スパムを検出し、不在通知メッセージや何らかのfileinto
ルールを使用する場合に便利です。discard
に続いてスパムを送信することで、stop
後続のすべてのルールをスキップできます。つまり、不在通知ルールによってスパムに返信することはなく、fileinto ルールによってスパムが別のメールボックスに送られることもありません。
を使用している場合はif
、elsif
この問題を回避できます。