From 73ccf7be65aa67f13c29f8c93f11eb09d813f448 Mon Sep 17 00:00:00 2001 From: mdecimus Date: Mon, 23 Oct 2023 17:19:16 +0200 Subject: [PATCH] Spam filter adjustements --- crates/smtp/src/scripts/plugins/bayes.rs | 8 +++++ crates/smtp/src/scripts/plugins/pyzor.rs | 10 ++++++ resources/config/smtp/sieve.toml | 2 +- resources/config/spamfilter/maps/scores.map | 28 +++++++-------- .../spamfilter/scripts/composites.sieve | 12 +++---- .../config/spamfilter/scripts/dmarc.sieve | 34 +++++++++---------- resources/config/spamfilter/scripts/ip.sieve | 4 +-- resources/config/spamfilter/scripts/url.sieve | 4 +-- tests/resources/smtp/antispam/combined.test | 8 ++--- tests/resources/smtp/antispam/dmarc.test | 30 ++++++++-------- tests/resources/smtp/antispam/pyzor.test | 32 +++++++++++++++++ tests/resources/smtp/antispam/url.test | 6 ++-- tests/src/smtp/inbound/antispam.rs | 2 +- 13 files changed, 115 insertions(+), 65 deletions(-) diff --git a/crates/smtp/src/scripts/plugins/bayes.rs b/crates/smtp/src/scripts/plugins/bayes.rs index 10c0ec67..d6bde305 100644 --- a/crates/smtp/src/scripts/plugins/bayes.rs +++ b/crates/smtp/src/scripts/plugins/bayes.rs @@ -93,6 +93,14 @@ fn train(ctx: PluginContext<'_>, is_train: bool) -> Variable { return false.into(); } + tracing::debug!( + parent: span, + context = "sieve:bayes_train", + event = "classify", + is_spam = is_spam, + num_tokens = model.weights.len(), + ); + // Update weight and invalidate cache for (hash, weights) in model.weights { let (s_weight, h_weight) = if is_train { diff --git a/crates/smtp/src/scripts/plugins/pyzor.rs b/crates/smtp/src/scripts/plugins/pyzor.rs index 25b874d2..e95ed09f 100644 --- a/crates/smtp/src/scripts/plugins/pyzor.rs +++ b/crates/smtp/src/scripts/plugins/pyzor.rs @@ -55,6 +55,16 @@ pub fn register(plugin_id: u32, fnc_map: &mut FunctionMap) { } pub fn exec(ctx: PluginContext<'_>) -> Variable { + // Make sure there is at least one text part + if !ctx + .message + .parts + .iter() + .any(|p| matches!(p.body, PartType::Text(_) | PartType::Html(_))) + { + return Variable::default(); + } + // Hash message let request = ctx .message diff --git a/resources/config/smtp/sieve.toml b/resources/config/smtp/sieve.toml index 264a127e..6d05f0e5 100644 --- a/resources/config/smtp/sieve.toml +++ b/resources/config/smtp/sieve.toml @@ -14,7 +14,7 @@ sign = ["rsa"] redirects = 3 out-messages = 5 received-headers = 50 -cpu = 50000 +cpu = 1048576 nested-includes = 5 duplicate-expiry = "7d" diff --git a/resources/config/spamfilter/maps/scores.map b/resources/config/spamfilter/maps/scores.map index 5a2826dd..017d4ec0 100644 --- a/resources/config/spamfilter/maps/scores.map +++ b/resources/config/spamfilter/maps/scores.map @@ -188,7 +188,7 @@ MULTIPLE_FROM 8.0 MULTIPLE_UNIQUE_HEADERS 7.0 MV_CASE 0.5 MW_SURBL_MULTI 7.5 -OMOGRAPH_URL 5.0 +HOMOGRAPH_URL 5.0 ONCE_RECEIVED 0.1 PHISHED_OPENPHISH 7.0 PHISHED_PHISHTANK 7.0 @@ -277,23 +277,23 @@ RWL_MAILSPIKE_NEUTRAL 0.0 RWL_MAILSPIKE_POSSIBLE 0.0 RWL_MAILSPIKE_VERYGOOD -0.2 R_BAD_CTE_7BIT 3.5 -R_DKIM_ALLOW -0.2 -R_DKIM_NA 0.0 -R_DKIM_PERMFAIL 0.0 -R_DKIM_REJECT 1.0 -R_DKIM_TEMPFAIL 0.0 +DKIM_ALLOW -0.2 +DKIM_NA 0.0 +DKIM_PERMFAIL 0.0 +DKIM_REJECT 1.0 +DKIM_TEMPFAIL 0.0 R_MISSING_CHARSET 0.5 R_MIXED_CHARSET 5.0 -R_MIXED_CHARSET_URL 7.0 +MIXED_CHARSET_URL 7.0 R_NO_SPACE_IN_FROM 1.0 R_PARTS_DIFFER 1.0 -R_SPF_ALLOW -0.2 -R_SPF_DNSFAIL 0.0 -R_SPF_FAIL 1.0 -R_SPF_NA 0.0 -R_SPF_NEUTRAL 0.0 -R_SPF_PERMFAIL 0.0 -R_SPF_SOFTFAIL 0.0 +SPF_ALLOW -0.2 +SPF_DNSFAIL 0.0 +SPF_FAIL 1.0 +SPF_NA 0.0 +SPF_NEUTRAL 0.0 +SPF_PERMFAIL 0.0 +SPF_SOFTFAIL 0.0 R_SUSPICIOUS_URL 5.0 R_UNDISC_RCPT 3.0 SEM_URIBL 3.5 diff --git a/resources/config/spamfilter/scripts/composites.sieve b/resources/config/spamfilter/scripts/composites.sieve index e008b0f7..073a3988 100644 --- a/resources/config/spamfilter/scripts/composites.sieve +++ b/resources/config/spamfilter/scripts/composites.sieve @@ -6,15 +6,15 @@ if eval "t.FORGED_SENDER && t.MAILLIST" { let "t.FORGED_SENDER_MAILLIST" "1"; } -if eval "t.DMARC_POLICY_ALLOW && (t.R_SPF_SOFTFAIL || t.R_SPF_FAIL || t.R_DKIM_REJECT)" { +if eval "t.DMARC_POLICY_ALLOW && (t.SPF_SOFTFAIL || t.SPF_FAIL || t.DKIM_REJECT)" { let "t.DMARC_POLICY_ALLOW_WITH_FAILURES" "1"; } -if eval "t.R_DKIM_NA && t.R_SPF_NA && t.DMARC_NA && t.ARC_NA" { +if eval "t.DKIM_NA && t.SPF_NA && t.DMARC_NA && t.ARC_NA" { let "t.AUTH_NA" "1"; } -if eval "!(t.R_DKIM_NA && t.R_SPF_NA && t.DMARC_NA && t.ARC_NA) && (t.R_DKIM_NA || t.R_DKIM_TEMPFAIL || t.R_DKIM_PERMFAIL) && (t.R_SPF_NA || t.R_SPF_DNSFAIL) && t.DMARC_NA && (t.ARC_NA || t.ARC_DNSFAIL)" { +if eval "!(t.DKIM_NA && t.SPF_NA && t.DMARC_NA && t.ARC_NA) && (t.DKIM_NA || t.DKIM_TEMPFAIL || t.DKIM_PERMFAIL) && (t.SPF_NA || t.SPF_DNSFAIL) && t.DMARC_NA && (t.ARC_NA || t.ARC_DNSFAIL)" { let "t.AUTH_NA_OR_FAIL" "1"; } @@ -38,11 +38,11 @@ if eval "t.RECEIVED_SPAMHAUS_PBL && !t.RCVD_VIA_SMTP_AUTH" { let "t.RCVD_UNAUTH_PBL" "1"; } -if eval "(t.R_DKIM_ALLOW || t.ARC_ALLOW) && t.RCVD_IN_DNSWL_MED" { +if eval "(t.DKIM_ALLOW || t.ARC_ALLOW) && t.RCVD_IN_DNSWL_MED" { let "t.RCVD_DKIM_ARC_DNSWL_MED" "1"; } -if eval "(t.R_DKIM_ALLOW || t.ARC_ALLOW) && t.RCVD_IN_DNSWL_HI" { +if eval "(t.DKIM_ALLOW || t.ARC_ALLOW) && t.RCVD_IN_DNSWL_HI" { let "t.RCVD_DKIM_ARC_DNSWL_HI" "1"; } @@ -58,7 +58,7 @@ if eval "t.HAS_GUC_PROXY_URI || t.URIBL_RED || t.DBL_ABUSE_REDIR || t.HAS_ONION_ let "t.HAS_ANON_DOMAIN" "1"; } -if eval "(t.R_SPF_FAIL || t.R_SPF_SOFTFAIL) && (t.RCVD_COUNT_ZERO || t.RCVD_NO_TLS_LAST)" { +if eval "(t.SPF_FAIL || t.SPF_SOFTFAIL) && (t.RCVD_COUNT_ZERO || t.RCVD_NO_TLS_LAST)" { let "t.VIOLATED_DIRECT_SPF" "1"; } diff --git a/resources/config/spamfilter/scripts/dmarc.sieve b/resources/config/spamfilter/scripts/dmarc.sieve index 090c8323..f0368620 100644 --- a/resources/config/spamfilter/scripts/dmarc.sieve +++ b/resources/config/spamfilter/scripts/dmarc.sieve @@ -1,29 +1,29 @@ if eval "env.spf.result == 'pass'" { - let "t.R_SPF_ALLOW" "1"; + let "t.SPF_ALLOW" "1"; } elsif eval "env.spf.result == 'fail'" { - let "t.R_SPF_FAIL" "1"; + let "t.SPF_FAIL" "1"; } elsif eval "env.spf.result == 'softfail'" { - let "t.R_SPF_SOFTFAIL" "1"; + let "t.SPF_SOFTFAIL" "1"; } elsif eval "env.spf.result == 'neutral'" { - let "t.R_SPF_NEUTRAL" "1"; + let "t.SPF_NEUTRAL" "1"; } elsif eval "env.spf.result == 'temperror'" { - let "t.R_SPF_DNSFAIL" "1"; + let "t.SPF_DNSFAIL" "1"; } elsif eval "env.spf.result == 'permerror'" { - let "t.R_SPF_PERMFAIL" "1"; + let "t.SPF_PERMFAIL" "1"; } else { - let "t.R_SPF_NA" "1"; + let "t.SPF_NA" "1"; } if eval "env.dkim.result == 'pass'" { - let "t.R_DKIM_ALLOW" "1"; + let "t.DKIM_ALLOW" "1"; } elsif eval "env.dkim.result == 'fail'" { - let "t.R_DKIM_REJECT" "1"; + let "t.DKIM_REJECT" "1"; } elsif eval "env.dkim.result == 'temperror'" { - let "t.R_DKIM_TEMPFAIL" "1"; + let "t.DKIM_TEMPFAIL" "1"; } elsif eval "env.dkim.result == 'permerror'" { - let "t.R_DKIM_PERMFAIL" "1"; + let "t.DKIM_PERMFAIL" "1"; } else { - let "t.R_DKIM_NA" "1"; + let "t.DKIM_NA" "1"; } if eval "env.arc.result == 'pass'" { @@ -73,19 +73,19 @@ if eval "lookup('spam/dmarc-allow', from_domain)" { } elsif eval "lookup('spam/spf-dkim-allow', from_domain)" { let "is_dkim_pass" "contains(env.dkim.domains, from_domain) || t.ARC_ALLOW"; - if eval "is_dkim_pass && t.R_SPF_ALLOW" { + if eval "is_dkim_pass && t.SPF_ALLOW" { let "t.ALLOWLIST_SPF_DKIM" "1"; } elsif eval "is_dkim_pass" { let "t.ALLOWLIST_DKIM" "1"; - if eval "!t.R_SPF_DNSFAIL" { + if eval "!t.SPF_DNSFAIL" { let "t.BLOCKLIST_SPF" "1"; } - } elsif eval "t.R_SPF_ALLOW" { + } elsif eval "t.SPF_ALLOW" { let "t.ALLOWLIST_SPF" "1"; - if eval "!t.R_DKIM_TEMPFAIL" { + if eval "!t.DKIM_TEMPFAIL" { let "t.BLOCKLIST_DKIM" "1"; } - } elsif eval "!t.R_SPF_DNSFAIL && !t.R_DKIM_TEMPFAIL" { + } elsif eval "!t.SPF_DNSFAIL && !t.DKIM_TEMPFAIL" { let "t.BLOCKLIST_SPF_DKIM" "1"; } } diff --git a/resources/config/spamfilter/scripts/ip.sieve b/resources/config/spamfilter/scripts/ip.sieve index c7c4f5a6..cd676f66 100644 --- a/resources/config/spamfilter/scripts/ip.sieve +++ b/resources/config/spamfilter/scripts/ip.sieve @@ -1,8 +1,8 @@ # Reverse ip checks if eval "env.iprev.result != ''" { - if eval "ends_with(env.iprev.result, 'error')" { + if eval "env.iprev.result == 'temperror'" { let "t.RDNS_DNSFAIL" "1"; - } elsif eval "env.iprev.result == 'fail'" { + } elsif eval "env.iprev.result == 'fail' || env.iprev.result == 'permerror'" { let "t.RDNS_NONE" "1"; } } diff --git a/resources/config/spamfilter/scripts/url.sieve b/resources/config/spamfilter/scripts/url.sieve index 7e731574..43a3c1d9 100644 --- a/resources/config/spamfilter/scripts/url.sieve +++ b/resources/config/spamfilter/scripts/url.sieve @@ -69,11 +69,11 @@ while "i > 0" { if eval "!is_ascii(host)" { let "host_cured" "cure_text(host)"; if eval "host_lc != host_cured && dns_exists(host_cured, 'ip')" { - let "t.OMOGRAPH_URL" "1"; + let "t.HOMOGRAPH_URL" "1"; } if eval "!is_single_script(host)" { - let "t.R_MIXED_CHARSET_URL" "1"; + let "t.MIXED_CHARSET_URL" "1"; } } else { if eval "ends_with(host, 'googleusercontent.com') && starts_with(query, '/proxy/')" { diff --git a/tests/resources/smtp/antispam/combined.test b/tests/resources/smtp/antispam/combined.test index b4b51844..fd188be1 100644 --- a/tests/resources/smtp/antispam/combined.test +++ b/tests/resources/smtp/antispam/combined.test @@ -6,9 +6,9 @@ spf.result none spf_ehlo.result none dmarc.result none remote_ip 195.210.29.48 -expect_header X-Spam-Status Yes, score=7. +expect_header X-Spam-Status Yes, score=8. expect_header X-Spam-Result -expect auth_na dmarc_na helo_nores_a_or_mx once_received mid_rhs_match_from r_spf_na has_data_uri arc_na subject_has_exclaim subject_ends_exclaim rdns_dnsfail mime_html_only html_short_link_img_1 to_dn_none rcpt_count_one to_match_envrcpt_all fromhost_nores_a_or_mx rcvd_count_zero from_eq_envfrom r_dkim_na rcvd_no_tls_last from_has_dn date_in_past +expect rdns_none auth_na dmarc_na helo_nores_a_or_mx once_received mid_rhs_match_from spf_na has_data_uri arc_na subject_has_exclaim subject_ends_exclaim mime_html_only html_short_link_img_1 to_dn_none rcpt_count_one to_match_envrcpt_all fromhost_nores_a_or_mx rcvd_count_zero from_eq_envfrom dkim_na rcvd_no_tls_last from_has_dn date_in_past From: Client Services To: licensing@stalw.art @@ -52,7 +52,7 @@ remote_ip 185.58.86.181 tls.version TLSv1.3 expect_header X-Spam-Status No, score=4. expect_header X-Spam-Result -expect from_eq_envfrom from_has_dn helo_nores_a_or_mx forged_rcvd_trail date_in_past arc_na uri_count_odd dkim_signed has_attachment r_spf_allow rcvd_tls_last rcpt_count_one mime_good subject_ends_spaces fromhost_nores_a_or_mx to_dn_eq_addr_all r_dkim_allow dmarc_policy_allow rcvd_count_three to_match_envrcpt_all +expect from_eq_envfrom from_has_dn helo_nores_a_or_mx forged_rcvd_trail date_in_past arc_na uri_count_odd dkim_signed has_attachment spf_allow rcvd_tls_last rcpt_count_one mime_good subject_ends_spaces fromhost_nores_a_or_mx to_dn_eq_addr_all dkim_allow dmarc_policy_allow rcvd_count_three to_match_envrcpt_all DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tenthrevolution.com; s=mimecast20200102; t=1669138703; @@ -627,7 +627,7 @@ remote_ip 51.89.165.39 tls.version TLS1_2 expect_header X-Spam-Status Yes, score=13. expect_header X-Spam-Result -expect has_replyto violated_direct_spf replyto_addr_eq_from once_received r_parts_differ mid_rhs_match_from fromhost_nores_a_or_mx from_has_dn r_dkim_allow date_in_past to_match_envrcpt_all html_short_link_img_1 rcpt_count_one arc_na helo_nores_a_or_mx r_spf_softfail rcvd_tls_last rcvd_count_zero replyto_dom_eq_from_dom to_dn_none has_list_unsub dkim_signed rdns_none from_eq_envfrom dmarc_policy_reject +expect has_replyto violated_direct_spf replyto_addr_eq_from once_received r_parts_differ mid_rhs_match_from fromhost_nores_a_or_mx from_has_dn dkim_allow date_in_past to_match_envrcpt_all html_short_link_img_1 rcpt_count_one arc_na helo_nores_a_or_mx spf_softfail rcvd_tls_last rcvd_count_zero replyto_dom_eq_from_dom to_dn_none has_list_unsub dkim_signed rdns_none from_eq_envfrom dmarc_policy_reject DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=sectionalism; d=grupokonecta.net; h=To:Subject:Message-ID:Date:From:Reply-To:MIME-Version:List-Unsubscribe: diff --git a/tests/resources/smtp/antispam/dmarc.test b/tests/resources/smtp/antispam/dmarc.test index 247e9109..57f0cd6b 100644 --- a/tests/resources/smtp/antispam/dmarc.test +++ b/tests/resources/smtp/antispam/dmarc.test @@ -1,4 +1,4 @@ -expect DMARC_NA R_SPF_NA R_DKIM_NA ARC_NA +expect DMARC_NA SPF_NA DKIM_NA ARC_NA Subject: test @@ -9,7 +9,7 @@ spf.result pass dkim.result pass arc.result pass dmarc.result pass -expect DKIM_SIGNED ARC_SIGNED R_DKIM_ALLOW R_SPF_ALLOW ARC_ALLOW DMARC_POLICY_ALLOW +expect DKIM_SIGNED ARC_SIGNED DKIM_ALLOW SPF_ALLOW ARC_ALLOW DMARC_POLICY_ALLOW DKIM-Signature: abc ARC-Seal: xyz @@ -23,7 +23,7 @@ dkim.result fail arc.result fail dmarc.result fail dmarc.policy quarantine -expect R_SPF_FAIL ARC_REJECT R_DKIM_REJECT DMARC_POLICY_QUARANTINE +expect SPF_FAIL ARC_REJECT DKIM_REJECT DMARC_POLICY_QUARANTINE Subject: test @@ -35,7 +35,7 @@ dkim.result temperror arc.result permerror dmarc.result fail dmarc.policy reject -expect R_DKIM_TEMPFAIL R_SPF_NEUTRAL ARC_INVALID DMARC_POLICY_REJECT +expect DKIM_TEMPFAIL SPF_NEUTRAL ARC_INVALID DMARC_POLICY_REJECT Subject: test @@ -46,7 +46,7 @@ spf.result softfail dkim.result permerror arc.result temperror dmarc.result permerror -expect ARC_DNSFAIL DMARC_BAD_POLICY R_DKIM_PERMFAIL R_SPF_SOFTFAIL +expect ARC_DNSFAIL DMARC_BAD_POLICY DKIM_PERMFAIL SPF_SOFTFAIL Subject: test @@ -55,7 +55,7 @@ Test dmarc.result pass dkim.result pass spf.result pass -expect ALLOWLIST_DMARC DMARC_POLICY_ALLOW R_DKIM_ALLOW R_SPF_ALLOW ARC_NA +expect ALLOWLIST_DMARC DMARC_POLICY_ALLOW DKIM_ALLOW SPF_ALLOW ARC_NA From: user@dmarc-allow.org Subject: test @@ -66,7 +66,7 @@ Test dmarc.result fail dkim.result fail spf.result fail -expect BLOCKLIST_DMARC DMARC_POLICY_SOFTFAIL R_DKIM_REJECT R_SPF_FAIL ARC_NA +expect BLOCKLIST_DMARC DMARC_POLICY_SOFTFAIL DKIM_REJECT SPF_FAIL ARC_NA From: user@dmarc-allow.org Subject: test @@ -77,7 +77,7 @@ Test dkim.result pass dkim.domains spf-dkim-allow.org spf.result pass -expect ALLOWLIST_SPF_DKIM R_DKIM_ALLOW R_SPF_ALLOW ARC_NA DMARC_NA +expect ALLOWLIST_SPF_DKIM DKIM_ALLOW SPF_ALLOW ARC_NA DMARC_NA From: user@spf-dkim-allow.org Subject: test @@ -87,7 +87,7 @@ Test dkim.result pass spf.result pass arc.result pass -expect ALLOWLIST_SPF_DKIM R_DKIM_ALLOW R_SPF_ALLOW ARC_ALLOW DMARC_NA +expect ALLOWLIST_SPF_DKIM DKIM_ALLOW SPF_ALLOW ARC_ALLOW DMARC_NA From: user@spf-dkim-allow.org Subject: test @@ -96,7 +96,7 @@ Test spf.result pass dkim.result fail -expect ALLOWLIST_SPF BLOCKLIST_DKIM R_DKIM_REJECT R_SPF_ALLOW ARC_NA DMARC_NA +expect ALLOWLIST_SPF BLOCKLIST_DKIM DKIM_REJECT SPF_ALLOW ARC_NA DMARC_NA From: user@spf-dkim-allow.org Subject: test @@ -105,7 +105,7 @@ Test spf.result pass dkim.result temperror -expect ALLOWLIST_SPF R_DKIM_TEMPFAIL R_SPF_ALLOW ARC_NA DMARC_NA +expect ALLOWLIST_SPF DKIM_TEMPFAIL SPF_ALLOW ARC_NA DMARC_NA From: user@spf-dkim-allow.org Subject: test @@ -115,7 +115,7 @@ Test dkim.result pass dkim.domains spf-dkim-allow.org spf.result fail -expect BLOCKLIST_SPF ALLOWLIST_DKIM R_DKIM_ALLOW R_SPF_FAIL ARC_NA DMARC_NA +expect BLOCKLIST_SPF ALLOWLIST_DKIM DKIM_ALLOW SPF_FAIL ARC_NA DMARC_NA From: user@spf-dkim-allow.org Subject: test @@ -125,7 +125,7 @@ Test dkim.result pass dkim.domains spf-dkim-allow.org spf.result temperror -expect ALLOWLIST_DKIM R_DKIM_ALLOW R_SPF_DNSFAIL ARC_NA DMARC_NA +expect ALLOWLIST_DKIM DKIM_ALLOW SPF_DNSFAIL ARC_NA DMARC_NA From: user@spf-dkim-allow.org Subject: test @@ -134,7 +134,7 @@ Test dkim.result fail spf.result fail -expect BLOCKLIST_SPF_DKIM R_DKIM_REJECT R_SPF_FAIL ARC_NA DMARC_NA +expect BLOCKLIST_SPF_DKIM DKIM_REJECT SPF_FAIL ARC_NA DMARC_NA From: user@spf-dkim-allow.org Subject: test @@ -143,7 +143,7 @@ Test dkim.result temperror spf.result temperror -expect R_DKIM_TEMPFAIL R_SPF_DNSFAIL ARC_NA DMARC_NA +expect DKIM_TEMPFAIL SPF_DNSFAIL ARC_NA DMARC_NA From: user@spf-dkim-allow.org Subject: test diff --git a/tests/resources/smtp/antispam/pyzor.test b/tests/resources/smtp/antispam/pyzor.test index dc26aadb..e82c0840 100644 --- a/tests/resources/smtp/antispam/pyzor.test +++ b/tests/resources/smtp/antispam/pyzor.test @@ -18,3 +18,35 @@ Subject: test TestX TestY TestZ TestW + +expect + +MIME-Version: 1.0 +X-Received: by 2002:a05:6870:c7a6:b0:1e9:8f74:ce15 with SMTP id + dy38-20020a056870c7a600b001e98f74ce15mr2429202oab.11.1697967052502; Sun, 22 + Oct 2023 02:30:52 -0700 (PDT) +Date: Sat, 21 Oct 2023 16:59:59 -0700 +Message-ID: <17434871060391156945@google.com> +Subject: Report domain: stalw.art Submitter: google.com Report-ID: 17434871060391156945 +From: noreply-dmarc-support@google.com +To: domains@stalw.art +Content-Type: application/zip; + name="google.com!stalw.art!1697846400!1697932799.zip" +Content-Disposition: attachment; + filename="google.com!stalw.art!1697846400!1697932799.zip" +Content-Transfer-Encoding: base64 + +UEsDBAoAAAAIABdJVldhOnFiLAIAAG4JAAAuAAAAZ29vZ2xlLmNvbSFzdGFsdy5hcnQhMTY5Nzg0 +NjQwMCExNjk3OTMyNzk5LnhtbO1WwXKbMBC95ys8vhshDBgYRempX9CeGRkE1hgkjSTs5O8rIgnT +pMl0ptOcfEK83X27+/TwGD09j8PmQpVmgj9uYRRvN5Q3omW8f9z+/PF9V2w3T/gBdZS2R9Kc8cNm +gxSVQpl6pIa0xJAZs6hQfc3JSHEvRD/QqBEjAgvocuhI2IC5sAzDy64diWp2epIz3bd1mcvzNc9G +kboR3JDG1Ix3Ap+MkboCwJdGt1JAAOH6ShVI0jzPithyva93xH4N1mJ4SPdpcYBxHu9LCLO8TDME +bnGXb3eltSK899tY6Eh7xjHMy0OR5mlsuzkkxClvX6PlPjmUpZ2FBzLwO9vSbS0qkmJgzUstp+PA +9IkugwgrD8fakOEaEWUsmUNcmLRnNmKFgDt4UMvuFZufDpL2IjhFQPp3HQAdENkYDOet5oODeEji +0s39pxmttI1QYVwlrosgWkyqoTWTGO6zCBYwgmUWJbHV5hYKyY2YuMF7BNwhwL4jvZBhsiK2ITAr +w7QUmhnrZj/mGlnlzcJIorVNWDTyInQ+sAi12vJNT3trYTfEWsoN65j9lpayEyUtVXWnxLi+rTXs +ed5VIzKZU62ongZzI3wz7OdG8CafGfxK/mW1LR1oY4TCFzqwM9NKEp4kdveALwKsO6OVNP88xUpo +6843S8/JwUl/Y6qExHEF0yyu0iJPqySuqiQ9fOwt+OXe6uwP291b/8FbTtiv9RZM87u37t76zFsI +3P46/QJQSwECCgAKAAAACAAXSVZXYTpxYiwCAABuCQAALgAAAAAAAAAAAAAAAAAAAAAAZ29vZ2xl +LmNvbSFzdGFsdy5hcnQhMTY5Nzg0NjQwMCExNjk3OTMyNzk5LnhtbFBLBQYAAAAAAQABAFwAAAB4 +AgAAAAA= diff --git a/tests/resources/smtp/antispam/url.test b/tests/resources/smtp/antispam/url.test index aa4d4218..a39a0657 100644 --- a/tests/resources/smtp/antispam/url.test +++ b/tests/resources/smtp/antispam/url.test @@ -16,13 +16,13 @@ Subject: test my site is https://192.168.1.1 -expect OMOGRAPH_URL +expect HOMOGRAPH_URL Subject: test my site is https://xn--youtue-tg7b.com -expect R_MIXED_CHARSET_URL +expect MIXED_CHARSET_URL Subject: test @@ -40,7 +40,7 @@ Subject: nested redirect login to https://redirect.com/?https://redirect.org/?https://redirect.net/?https://redirect.io/?https://redirect.me/?https://redirect.com -expect REDIRECTOR_URL OMOGRAPH_URL +expect REDIRECTOR_URL HOMOGRAPH_URL Subject: redirect to omograph diff --git a/tests/src/smtp/inbound/antispam.rs b/tests/src/smtp/inbound/antispam.rs index 418a0e24..1fe3985e 100644 --- a/tests/src/smtp/inbound/antispam.rs +++ b/tests/src/smtp/inbound/antispam.rs @@ -38,7 +38,7 @@ no-capability-check = true redirects = 3 out-messages = 5 received-headers = 50 -cpu = 10000 +cpu = 500000 nested-includes = 5 duplicate-expiry = "7d"