dovecot sieve中的“stop”命令是干什么用的?

规则文件中有一个叫stop的命令,停止处理。 我不知道为什么这是必要的。 如果这是规则中的指令列表中的最后一个命令,那么是不是规则已经完成处理? 还是这意味着不要跳到列表中的下一个规则? 换句话说,让我们说我的sieve文件有一个规则列表:

 Rule A Rule B Rule C Rule D 

如果规则B最后有stop命令,规则C和D是否会被跳过? 我假设规则是按照它们出现在筛选文件中的顺序执行的?

是的,如果规则B在最后包含stop命令,规则C和D将被跳过。

“停止”操作结束所有处理。 如果隐含的保留没有被取消,那么它被采取。
– RFC 5228第3.3节“控制停止”


这在检测垃圾邮件和使用休假消息或某些文件规则时非常有用。 您可以discard垃圾邮件,然后stop跳过所有以下规则,这意味着您不会通过您的休假规则回复它们,并且不会通过fileinto规则将其放入另一个邮箱。

如果你使用ifelsif你可以避免这个问题。