Spamassassin 正则表达式 header 规则无效
Spamassassin regex header rule not working
我是 Spamassassin、正则表达式和 Perl 的新手,因此非常感谢您的帮助。我试图为发件人遵循特定模式的所有电子邮件添加垃圾邮件分数,即:
name.surname.@example.com
。
这是我想出的
header NAME_DOT_SURNAME_DOT_FQDN From=~((?:[a-z]+))(\.)((?:[a-z]+))(\.)(@)((?:[a-z][a-z\.\d\-]+)\.(?:[a-z][a-z\-]+))(?![\w\.])
score NAME_DOT_SURNAME_DOT_FQDN 3.0
但是,它似乎不起作用。当我 运行 spamassassin --lint
我得到以下输出:
Feb 12 12:52:59.521 [32767] warn: Use of ?PATTERN? without explicit operator is deprecated at /etc/spamassassin/local.cf, rule NAME_DOT_SURNAME_DOT_FQDN, line 1.
Feb 12 12:52:59.522 [32767] warn: rules: failed to compile Mail::SpamAssassin::Plugin::Check::_head_tests_0_3, skipping:
Feb 12 12:52:59.522 [32767] warn: (Unmatched ) in regex; marked by <-- HERE in m/: [...][a-z]+) <-- HERE )(\.)((/ at /etc/spamassassin/local.cf, rule NAME_DOT_SURNAME_DOT_FQDN, line 1.)
Feb 12 12:52:59.620 [32767] warn: lint: 1 issues detected, please rerun with debug enabled for more information
运行 spamassassin --lint -D
只会生成包含相同错误的文本墙。
谁能指出我正确的方向?提前致谢。
我不知道 SpamAssassin,但它是否需要 /
/
围绕正则表达式?
因为错误消息表明 Perl 将 ?
视为正则表达式定界符,导致正则表达式为:
?:[a-z]+))(\.)((?
#-------^ unmatched ')'
所以我会尝试的是:
header NAME_DOT_SURNAME_DOT_FQDN From=~/((?:[a-z]+))(\.)((?:[a-z]+))(\.)(@)((?:[a-z][a-z\.\d\-]+)\.(?:[a-z][a-z\-]+))(?![\w\.])/
此外,那些双反斜杠看起来很可疑。你确定你不是说例如\w
而不是 \w
?
我是 Spamassassin、正则表达式和 Perl 的新手,因此非常感谢您的帮助。我试图为发件人遵循特定模式的所有电子邮件添加垃圾邮件分数,即:
name.surname.@example.com
。
这是我想出的
header NAME_DOT_SURNAME_DOT_FQDN From=~((?:[a-z]+))(\.)((?:[a-z]+))(\.)(@)((?:[a-z][a-z\.\d\-]+)\.(?:[a-z][a-z\-]+))(?![\w\.])
score NAME_DOT_SURNAME_DOT_FQDN 3.0
但是,它似乎不起作用。当我 运行 spamassassin --lint
我得到以下输出:
Feb 12 12:52:59.521 [32767] warn: Use of ?PATTERN? without explicit operator is deprecated at /etc/spamassassin/local.cf, rule NAME_DOT_SURNAME_DOT_FQDN, line 1.
Feb 12 12:52:59.522 [32767] warn: rules: failed to compile Mail::SpamAssassin::Plugin::Check::_head_tests_0_3, skipping:
Feb 12 12:52:59.522 [32767] warn: (Unmatched ) in regex; marked by <-- HERE in m/: [...][a-z]+) <-- HERE )(\.)((/ at /etc/spamassassin/local.cf, rule NAME_DOT_SURNAME_DOT_FQDN, line 1.)
Feb 12 12:52:59.620 [32767] warn: lint: 1 issues detected, please rerun with debug enabled for more information
运行 spamassassin --lint -D
只会生成包含相同错误的文本墙。
谁能指出我正确的方向?提前致谢。
我不知道 SpamAssassin,但它是否需要 /
/
围绕正则表达式?
因为错误消息表明 Perl 将 ?
视为正则表达式定界符,导致正则表达式为:
?:[a-z]+))(\.)((?
#-------^ unmatched ')'
所以我会尝试的是:
header NAME_DOT_SURNAME_DOT_FQDN From=~/((?:[a-z]+))(\.)((?:[a-z]+))(\.)(@)((?:[a-z][a-z\.\d\-]+)\.(?:[a-z][a-z\-]+))(?![\w\.])/
此外,那些双反斜杠看起来很可疑。你确定你不是说例如\w
而不是 \w
?