Re: [dmarc-ietf] Ticket #1 - SPF alignment

Alessandro Vesely <> Tue, 02 February 2021 18:17 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 43BA83A0D3C for <>; Tue, 2 Feb 2021 10:17:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.121
X-Spam-Status: No, score=-2.121 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, NICE_REPLY_A=-0.001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1152-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id ejQvtIq9w77q for <>; Tue, 2 Feb 2021 10:17:42 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 46DAE3A0CD4 for <>; Tue, 2 Feb 2021 10:17:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=delta; t=1612289857; bh=IHNkPaBaEcRDS0xwKXnp7qkjfUk9uTf3LcvkhMR1ES8=; l=1678; h=To:References:From:Date:In-Reply-To; b=DOxi+DSwpMuEGMZ9beWnovzpGOtIgL4pWoR44QNUx7PujAyYGE7k0bap5+XQKDaiR OKYoNJ9mPdBLs6ByocYoPh232QIuN0GPCPGlhChB9gCQTePukT2xIgGHWUv9lH0IvH GIOcOnDV/NrXpflngoGdo+HB3LGxyW2lTPy/WEQBaAeo91gX8VvrH/Yabf+hr
Authentication-Results:; auth=pass (details omitted)
Original-From: Alessandro Vesely <>
Received: from [] (pcale.tana []) (AUTH: CRAM-MD5 uXDGrn@SYT0/k, TLS: TLS1.3, 128bits, ECDHE_RSA_AES_128_GCM_SHA256) by with ESMTPSA id 00000000005DC053.0000000060199740.00004825; Tue, 02 Feb 2021 19:17:36 +0100
To: John Levine <>,
References: <20210202174909.517906D2C88B@ary.qy>
From: Alessandro Vesely <>
Message-ID: <>
Date: Tue, 2 Feb 2021 19:17:35 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0
MIME-Version: 1.0
In-Reply-To: <20210202174909.517906D2C88B@ary.qy>
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Archived-At: <>
Subject: Re: [dmarc-ietf] Ticket #1 - SPF alignment
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Domain-based Message Authentication, Reporting, and Compliance \(DMARC\)" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 02 Feb 2021 18:17:44 -0000

On Tue 02/Feb/2021 18:49:08 +0100 John Levine wrote:
> In article <> you write:
>>> My MTA adds an SPF clause in the A-R header whether or not there's a null
>>> bounce address.
>>How can it report, say, fail for helo and pass for mfrom in just one clause?
> It doesn't.  It reports whatever the SPF library returns.
> I'm fairly sure that every DMARC implementation uses an SPF library and uses
> whatever the SPF library returns, so I don't see the point of this argument.

An SPF library implements the check_host() function.  It's up to the client to 
call it multiple times.  Is that client DMARC-aware?  As you may have guessed, 
my question is intended to understand how does a DMARC implementation actually 
ascertain whether an "spf=pass" is enough to validate 

>>>> OTOH, properly implemented SPF verifiers could skip producing a Mail From 
>>>> result if the helo identity was verified successfully.
>>> No, they could not.  That's not what the SPF spec says.
> Sorry, that's not what the DMARC spec says.

My point is that the DMARC spec says something inconsistent, namely that SPF 
helo results are reliable but typically they are not.

> Once again, what problem are we solving here?  Can we stop now?

We can stop now and get back on it later.  That idiosyncrasy is going to stay 
there until we fix it.  I'd suggest to fix it by accepting an aligned helo pass 
unconditionally.  However, it can also be fixed by an explanation, as long as 
it is something more persuasive than "one can type anything at helo".