使用procmail在From:标题中的电子邮件地址执行完全匹配

我发现了很多procmail的例子,以匹配From:标题与wilcards,但我想做一个完全匹配,以防止从:。* [email protected]匹配两个[email protected] [email protected]

这是可能的,如果是这样,怎么样?

习惯的做法是在目标地址的两边添加字边界锚。

:0 * ^From:(.*\<)?jgordon@example\.com\> ... 

如果你想匹配正好两个电子邮件地址,而不是其他人,制定一个正则expression式,只会匹配这两个。 在您的具体示例中, b?jgordon@example\.com将匹配bjgordonjgordon 。 一个常见的类似的模式是想要匹配firstname.lastnameflastnam ; 一个模式是(firstname\.lastname|flastnam)@example\.com

.*是与其他字符匹配的内容。 您只需要匹配标题名称后面的空格,以便将其更改为*

 * ^From: *[email protected] 

我怀疑它也可能锚定头的末尾,以避免在最后匹配额外的字符,但我没有testing过自己。

 * ^From: *[email protected]$ 

我有点困惑。 你应该为每个用户有一个procmail。 如果你把它们叠在一起,那就是问题所在。 当然,Unix可以处理它! 只要告诉它如何处理它。 请记住,它stream了下来。 所以你可以挤压东西,他们进来。首先钩住bjgordon。

 :0 * To: [email protected] bjgordon_file :0 * To: [email protected] jgordon_file 

如果您希望它在规则中生存,请使用抄送规则:

 :0 c: * From: root <[email protected]> root_foo_mail.`date +%y%m%d`