Re: [dmarc-ietf] Should we encourage the use of SPF "soft include" for common platforms?

Hector Santos <> Sat, 23 February 2019 19:00 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id C4A6B130E13 for <>; Sat, 23 Feb 2019 11:00:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key) header.b=lOG48ZrH; dkim=pass (1024-bit key) header.b=eMGXLU8L
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id EopeTtuSZwOT for <>; Sat, 23 Feb 2019 11:00:00 -0800 (PST)
Received: from ( []) by (Postfix) with ESMTP id B81DB1286E7 for <>; Sat, 23 Feb 2019 10:59:59 -0800 (PST)
DKIM-Signature: v=1;; s=tms1; a=rsa-sha1; c=simple/relaxed; l=2230; t=1550948391;; atpsh=sha1; h=Received:Received:Received:Received:Message-ID:Date:From: Organization:To:Subject:List-ID; bh=P6v8RuYFj4602tCm8hjnIfoGiRw=; b=lOG48ZrHbp+ISkw+vrVnBIuAEV0U2zB0YIyqVjgXP4X6Fnf1w+cPsUXwzlCcn1 HEYWE6GqZBOe9sM3Uju/lFhpgy+UXDXnsf8mapFIOFjWkATflNgt/JDC+YEvkiTK 6EXZY+PbsfNMWj2mrWhbuP76Pbhb6Rx/BxMJHmBpzyI90=
Received: by (Wildcat! SMTP Router v7.0.454.6) for; Sat, 23 Feb 2019 13:59:51 -0500
Authentication-Results:; dkim=pass header.s=tms1;
Received: from ([]) by (Wildcat! SMTP v7.0.454.6) with ESMTP id 1355302072.1.2820; Sat, 23 Feb 2019 13:59:49 -0500
DKIM-Signature: v=1;; s=tms1; a=rsa-sha256; c=simple/relaxed; l=2230; t=1550948087; h=Received:Received: Message-ID:Date:From:Organization:To:Subject:List-ID; bh=fyrbf/s mdH6rhk7cQixiPrKpB9/Ce5qL4z6ZfunXq2s=; b=eMGXLU8LVp8Jc+zLhLhCDYS ojGUn1yxImGayeNty+GkSs4D3LXPa/nzpV0q5RT4BUz+xmyUUClSh5TPGFkT8X25 vXSEx5mFNzf7+D47u1yvRyT0350Hkm1eWijplqFMjntTR12kDOVrPqP1piUjK9Fp KA2+54afjJga3IqsOE1M=
Received: by (Wildcat! SMTP Router v7.0.454.6) for; Sat, 23 Feb 2019 13:54:47 -0500
Received: from [] ([]) by (Wildcat! SMTP v7.0.454.6) with ESMTP id 1903197283.9.355064; Sat, 23 Feb 2019 13:54:46 -0500
Message-ID: <>
Date: Sat, 23 Feb 2019 13:59:52 -0500
From: Hector Santos <>
Organization: Santronics Software, Inc.
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.8.1
MIME-Version: 1.0
To: "Kurt Andersen (b)" <>, "" <>
References: <>
In-Reply-To: <>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <>
Subject: Re: [dmarc-ietf] Should we encourage the use of SPF "soft include" for common platforms?
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: Sat, 23 Feb 2019 19:00:03 -0000

On 2/23/2019 1:07 PM, Kurt Andersen (b) wrote:
> With the growth of huge platforms that emit mail from the same common set
> of IPs (such as GSuite, O365, or large ESPs), regular SPF "include" ends up
> granting a DMARC pass to a lot more potential authors than most
> organizations would necessarily choose to grant.
> Instead of using the standard "(+)include:" approach, if domain owners used
> "?include:" as their mechanism, then that would prevent the SPF result from
> granting a DMARC PASS result when traffic is coming from one of these
> massively included platforms. It would essentially force the DMARC result
> to be driven only by the DKIM evaluation.
> Thoughts?


In general, in the name of cooperative competition, I am *always* in 
favor of a protocol "standard" that applies to all scales. So it 
shouldn't matter it its huge or tiny, the protocol applies equally.

It helps to use an example. For example: has:


which returns:

v=spf1 ~all

The SPF processor result SHOULD be based on each one.  In this case, 
each include results in a softfail (~all) when there is no match.

Keeping in mind the recursive complexity that can occur here with 
multiple layers of includes, it sounds like you are proposing an 
include prefix result should override matching result, including the 
default/final result.  So for example, using one the includes for

? ~all

where you want to override the results of _netblock3 with a neutral 
result rather than use the matching result or final/default result of 
the specific include.

Unless the conditions were limited to when this can be applied, I can 
see where this can become really complex because of higher recursion 
potentials.   You also have compatibility concerns as well.

I have to recheck to how my legacy platform SPF code is designed for 
such a recursive include result override "change request" but is this 
what you are basically asking for here?