Spamassassin 正则表达式 - 几乎匹配所有内容

Spamassassin 正则表达式 - 几乎匹配所有内容

我为 spamassassin 编写了一个正则表达式规则,它应该匹配电子邮件主题和正文中的某些单词或短语。

规则如下:

header __SUBJECT_CHUJ Subject =~ /(powi.ksz.(0,5} penis.|jak powi.kszy.|wcieraj|wmasuj|grubszy|d.u.szy|erekcj.|zwi.sz. rozmiar|b.dzie twardy|b.dzie du.y|b.dzie d.ugi|wzw.d|centymetry)/i
body __BODY_CHUJOWE /\s+(jak powi.kszy.|wcieraj|posmaruj|wmasuj|natrzyj|grubszy|d.u.szy|erekcj.|zwi.sz. rozmiar|b.dzie twardy|wypisz|cz.onek|wypysuj|urosn..|du.ego penisa|b.dzie du.y|b.dzie d.ugi|wzw.d|centymetry|nowy .el|dodatkowe centymetry|dodatkowych centrumetr.w|zadowala. kobiety|)\s+/i
meta CHUJOWY_MAIL (__SUBJECT_CHUJ || __BODY_CHUJOWE )
score CHUJOWY_MAIL 1.4
describe CHUJOWY_MAIL Spam związany z CHUJEM

并且它匹配 1 个单词的电子邮件,例如:

Return-Path: <[email protected]>
X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mail01
X-Spam-Level: **
X-Spam-Status: No, score=2.8 required=5.0 tests=ALL_TRUSTED,CHUJOWY_MAIL,
    DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_REPLYTO,URIBL_BLOCKED
    autolearn=no autolearn_force=no version=3.4.0
Delivered-To: [email protected]
Received: from example.com (unknown [80.*.*.*.])
    (Authenticated sender: [email protected])
    by mail.glmr.in (Postfix) with ESMTPSA id 47E44428
    for <[email protected]>; Tue,  2 Oct 2018 22:27:36 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=example.com;
    s=default; t=1538512056;
    bh=Rbj/g/DG4Vxz5Q2spNg8e4CJNwTKexCgSS9rpHGC0c8=;
    h=Date:To:From:Reply-To:Subject;
    b=InLP2mWzq3cWk6N8pNfDxle6swdrp7KaXkQTyHfMJqmZcuRhoJFESQL16RMsyz2LJ
     dFLkXa0TO638JP+MC02DKi79dNGjKOncJSiWCN5z5mVGqg7YzzyPokgtBKNmr/bCG+
     exxcSU3vngAOEVTAqJxQYTiOIXkonJf9R0UAsw9E=
Date: Tue, 2 Oct 2018 20:27:35 +0000
To: [email protected]
From: test name <[email protected]>
Reply-To: [email protected]
Subject: test subject
Message-ID: <[email protected]>
X-Mailer: WPMailSMTP/Mailer/smtp 1.3.3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-EsetId: 37303A29DFC057626C7761

该电子邮件的正文中只有“test text 有人能发现该代码中有什么错误吗?”我编写的所有其他规则似乎都很好。

答案1

第一个正则表达式中有拼写错误,您应该使用{0,5}而不是(0,5}

您可能想要删除|第二个正则表达式中的最后一个。(one|two|three|)正则表达式匹配空字符串(因为括号内的第四个替代项是空字符串)。因此,您的长正则表达式也只匹配/s+/s+- 两个后续空格、回车符等。我认为这不是故意的。

相关内容