规则文件中有一个名为的命令stop
,它会停止处理。但我不确定为什么需要这样做。如果它是规则中指令列表中的最后一个命令,那么规则不是已经处理完毕了吗?或者它是否意味着不要跳到列表中的下一个规则?换句话说,假设我的筛选文件有一个规则列表:
Rule A
Rule B
Rule C
Rule D
如果规则 Bstop
末尾有命令,规则 C 和 D 会被跳过吗?我假设规则按照它们在筛选文件中出现的顺序执行?
答案1
是的,如果规则 Bstop
在末尾包含命令,则规则 C 和 D 将被跳过。
“stop”操作结束所有处理。如果隐式保留尚未取消,则执行该操作
。—RFC 5228 第 3.3 节“控制停止”
这在检测垃圾邮件和使用休假消息或某些fileinto
规则时非常有用。您可以将discard
垃圾邮件后面的邮件stop
跳过所有后续规则,这意味着您不会通过休假规则回复它们,也不会通过 fileinto 规则将它们放入另一个邮箱。
如果您正在使用if
,elsif
您可以避免这个问题。