使用 procmail 对 From: 标头中的电子邮件地址执行精确匹配

使用 procmail 对 From: 标头中的电子邮件地址执行精确匹配

我已经找到了很多 procmail 在 From: 标头上使用通配符进行匹配的示例,但我想进行精确匹配,以防止 From:.*[电子邮件保护]匹配两者[电子邮件保护] [电子邮件保护]

这可能吗?如果可能,怎么做?

答案1

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

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

如果您只想匹配两个电子邮件地址而不匹配其他地址,请编写一个仅匹配这两个地址的正则表达式。在您的特定示例中,b?jgordon@example\.com将匹配bjgordonjgordon。一种常见的类似模式是想要匹配firstname.lastnameflastnam;这种模式是(firstname\.lastname|flastnam)@example\.com

答案2

.*匹配附加字符的内容。您只需匹配标题名称后的空格,因此您可以将其更改为*

* ^From: *[email protected]

我怀疑也许可以锚定标题的末尾以避免在末尾匹配额外的字符,但我自己还没有测试过这一点。

* ^From: *[email protected]$

答案3

我有点困惑。你应该为每个用户准备一个 procmail。如果你把它们折叠成同一个,那就是问题所在。当然,Unix 可以处理它!只要告诉它如何处理它。请记住,它会向下流动。所以你可以在它们进来时挤压它们。先钩住 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`

相关内容