@@ -415,12 +415,15 @@ local function dmarc_validate_policy(task, policy, hdrfromdom, dmarc_esld) | |||
policy.domain .. ' : ' .. reason_str, policy.dmarc_policy) | |||
disposition = what | |||
else | |||
if (math.random(100) > policy.pct) then | |||
local coin = math.random(100) | |||
if (coin > policy.pct) then | |||
if (not no_sampling_domains or | |||
not no_sampling_domains:get_key(policy.domain)) then | |||
task:insert_result(dmarc_symbols['softfail'], 1.0, | |||
policy.domain .. ' : ' .. reason_str, policy.dmarc_policy, "sampled_out") | |||
sampled_out = true | |||
lua_util.debugm(N, task, 'changed dmarc policy from %s to %s, sampled out: %s < %s', | |||
what, 'softfail', coin, policy.pct) | |||
else | |||
task:insert_result(dmarc_symbols[what], 1.0, | |||
policy.domain .. ' : ' .. reason_str, policy.dmarc_policy, "local_policy") |
@@ -77,6 +77,11 @@ DMARC NA NXDOMAIN | |||
... -i 37.48.67.26 --from foo@mom.za.org | |||
Check Rspamc ${result} DMARC_NA | |||
DMARC PCT ZERO | |||
${result} = Scan Message With Rspamc ${TESTDIR}/messages/dmarc/pct_none.eml | |||
... -i 37.48.67.26 --from foo@mom.za.org | |||
Check Rspamc ${result} DMARC_POLICY_SOFTFAIL | |||
DKIM PERMFAIL NXDOMAIN | |||
${result} = Scan Message With Rspamc ${TESTDIR}/messages/dmarc/bad_dkim2.eml | |||
... -i 37.48.67.26 |
@@ -242,6 +242,11 @@ options = { | |||
type = "txt"; | |||
rcode = 'nxdomain'; | |||
}, | |||
{ | |||
name = "_dmarc.zero_pct.com", | |||
type = "txt"; | |||
replies = ["v=DMARC1; p=reject; sp=quarantine; pct=0"]; | |||
}, | |||
{ | |||
name = "example.com", | |||
type = "txt"; |
@@ -0,0 +1,17 @@ | |||
Date: Tue, 09 Aug 2016 10:01:27 +0200 | |||
Message-ID: <20160809100128@rspamd.tk> | |||
From: Rspamd <foo@zero_pct.com> | |||
To: foo@rspamd.tk | |||
Subject: hello | |||
Content-Type: text/plain; charset=utf-8; format=flowed; DelSp=Yes | |||
MIME-Version: 1.0 | |||
Content-Disposition: inline | |||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rspamd.tk; s=testdkim; | |||
t=1470729879; h=from:subject:date:message-id:to:mime-version:content-type; | |||
bh=7HkRgYnNru3SR2EWfgWU8yhM0MOH6ZZrPoEIgNIh8wc=; | |||
b=kTIV4jcgv9sWFh2JFrS/+PcNxiloituqjmHHqeJOTfa+/9C+Er8BjnMysTJyYVq36Gnv0OZDgLr3Yy4YP5Lzbt1M9ZdN5cJqO7yn1N7wyaGfkt++b09rIYBy5Dkk7OWyP3cDThqDzv8C9heSvqBSEsirFsbt3Wx2g/hWiJlnjew= | |||
hello | |||