procmail 配方是否有交流发电机“或”运算符?

Cor*_*ein 5 regular-expression procmail

鉴于以下 procmail 配方:

:0:
* ^Subject:.*viagra.*
* ^From:.*viagra.*
/dev/null
Run Code Online (Sandbox Code Playgroud)

Procmail 只会删除来自伟哥且主题中包含伟哥的电子邮件。如果任一匹配项为真,是否可以应用过滤器?

解决方案最好不要使用正则表达式(regex1|regex2)操作,但如果这是唯一的解决方案,那么请说出来。

Geo*_*e M 10

你很近。对正则表达式的深刻理解对成功的 procmail 配方大有帮助。Procmail 非常灵活,但这种灵活性很大程度上取决于正则表达式。

:0: 
* ^(From|Cc|To|Subject).*viagara.* 
/dev/null
Run Code Online (Sandbox Code Playgroud)

或者,我相信更接近您想要实现的目标,使用管道和换行符在下一行继续规则(为了可读性)。在您的示例中,您正在创建一个也必须匹配的新条件。

:0:
* ^Subject:.*viagra.* |\
  ^From:.*viagra.*
/dev/null
Run Code Online (Sandbox Code Playgroud)