给出以下 procmail 配方:
:0:
* ^Subject:.*viagra.*
* ^From:.*viagra.*
/dev/null
Procmail 只会删除来自伟哥且主题中有伟哥的电子邮件。如果其中一个匹配项为真,是否可以应用过滤器?
该解决方案最好不使用正则表达式(regex1|regex2)
操作,但如果这是唯一的解决方案,请这么说。
答案1
你很接近。对正则表达式的深刻理解对于成功的 procmail 秘诀大有帮助。 Procmail 非常灵活,但这种灵活性很大程度上取决于正则表达式。
:0:
* ^(From|Cc|To|Subject).*viagara.*
/dev/null
或者,我相信更接近您想要实现的目标,使用管道和新行转义来继续下一行的规则(为了可读性)。在您的示例中,您正在创建一个也必须匹配的新条件。
:0:
* ^Subject:.*viagra.* |\
^From:.*viagra.*
/dev/null
答案2
只需使用两个配方,每个都转到 /dev/null,一个匹配主题,另一个匹配发件人。第一场比赛获胜。这本质上与 OR 运算符相同。 reg1|reg2 方法可以工作,但我认为它作为两个食谱读起来更清楚。