我们正在尝试丢弃所有具有匹配主题的电子邮件,主题示例:
主题:DOMAIN.COM 警告:NAME 我们尚未收到您的付款
我们正在尝试匹配任何域、警报和“我们尚未收到您的付款”
使用以下过滤器:
if
$header_subject: matches "^(?!:\\\\/\\\\/)([a-zA-Z0-9-_]+\\\\.)*[a-zA-Z0-9][a-zA-Z0-9-_]+\\\\.[a-zA-Z]{2,11}?\\$"
and $header_subject: contains "Alert"
and $header_subject: contains "We have NOT received your payment"
then
save "/dev/null" 660
endif
但是在测试时它不匹配,我已经测试了正则表达式以匹配域并且它可以工作,但是在添加附加规则时,它会停止过滤器的工作。
答案1
这将丢弃主题与“DOMAIN.COM 警报:NAME 我们尚未收到您的付款”匹配的邮件
(其中 DOMAIN.COM 可以是任何域)
if $h_subject matches "^[A-Za-z0-9-_]+\\\\.[a-zA-Z]\\\\b.+Alert.+We have NOT received your payment\\$"
then
seen finish
endif
注意:您可以使用以下方法测试系统过滤器对交付的影响:
exim -bF test_filter <test_message
您的第一个正则表达式包含与\\$
字符串结尾匹配的字符串,因此仅当域字符串位于主题末尾时它才会匹配。