procmail 食譜有交流發電機「或」運算符嗎?

procmail 食譜有交流發電機「或」運算符嗎?

給出以下 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 方法可以工作,但我認為它作為兩個食譜讀起來更清楚。

相關內容