通过使用procmail包含我的名称,通过“以”包含我的名称来过滤电子邮件
-
12-12-2019 - |
题
使用procmail,我想移动任何不含我的名字(“to”字段中的名称(“John Doe”)的传入邮件到“垃圾”文件夹。
但是,即使我在在线测试应用程序中彻底测试了正则表达式,以下规则似乎没有任何效果,以确保它与它应该匹配:# Filter spam if the name "John Doe" is not in "To"
:0:
* ^(?!To:.*John\sDoe).*
.Junk/
.
如果它是感兴趣的,我的整个procmail规则文件是:
# Filter mail using SpamAssassin
:0fw: spamassassin.lock
* < 256000
| /usr/bin/spamassassin
# Filter spam based on "Spam-Level"
:0:
* ^X-Spam-Level: \*\*
.Junk/
# Filter spam if the name "John Doe" is not in "To"
:0:
* ^(?!To:.*John\sDoe).*
.Junk/
.
为什么我的规则工作不起作用?
谢谢您的任何帮助!
解决方案
因为perl看法不是procmail的正则表达式reptoire的一部分。
改为。
:0
* ! ^To:.*John[ ]+Doe
.Junk/
.
[]内的空格应该是空格和标签;也不支持\s
perlism。
您可能会更好地使用您的电子邮件地址作为过滤标准,也许使用^TO_
特殊宏以覆盖CC:等。您当然仍然无法处理BCC:到您的帐户。
不隶属于 StackOverflow