Re: [spfbis] SPF-checking tool

Frank Bulk <> Tue, 10 March 2020 03:35 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 660D73A0E88 for <>; Mon, 9 Mar 2020 20:35:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -0.397
X-Spam-Status: No, score=-0.397 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, FROM_LOCAL_NOVOWEL=0.5, HK_RANDOM_ENVFROM=0.001, HK_RANDOM_FROM=0.998, SPF_FAIL=0.001, SPOOF_COM2OTH=0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id cHX2NKrwCB7x for <>; Mon, 9 Mar 2020 20:35:08 -0700 (PDT)
Received: from ( [IPv6:2607:fe28:0:4000::10]) (using TLSv1.2 with cipher ECDHE-RSA-CHACHA20-POLY1305 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 2D35F3A0E89 for <>; Mon, 9 Mar 2020 20:35:02 -0700 (PDT)
X-Default-Received-SPF: pass (skip=forwardok (res=PASS)) x-ip-name=; envelope-from=<>;
Received: from FBULKPC (unverified []) by (SurgeMail 7.4f) with ESMTP id 13648311-1729245 for multiple; Mon, 09 Mar 2020 22:32:44 -0500
From: "Frank Bulk" <>
To: "'Stuart D Gathman'" <>, "John Levine" <>
Cc: <>, <>
References: <20200301150947.3421E152A862@ary.qy> <>
In-Reply-To: <>
Date: Mon, 9 Mar 2020 22:32:43 -0500
Message-ID: <000001d5f68c$8fd67ab0$af837010$>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Outlook 16.0
Content-Language: en-us
X-Vpipe: restarted=25 started /var/surgemail/ (/var/surgemail/
X-SpamDetect: : -6.5 sd=-6.5 0.02(X-SpamContent:clean) 0.04(X-myrbl:Color=white) 0.74(Received:for multiple) [nnot=2, ng=2, nsum=0, nb=0, nw=2, -10.54]
X-SpamContent: Clean
X-LangGuess: English
X-MyRbl: Color=White (rbl) Age=0 Spam=0 Notspam=0 Stars=0 Good=109 Friend=0 Surbl=0 Catch=0 r=0 ip=
X-IP-stats: Incoming Last 0, First 118, in=26325, out=0, spam=0 ip=
Archived-At: <>
Subject: Re: [spfbis] SPF-checking tool
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: SPFbis discussion list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 10 Mar 2020 03:35:19 -0000

Thanks for considering it -- I'd be happy to test it again the domains in
our dataset. 


-----Original Message-----
From: Stuart D Gathman <> 
Sent: Monday, March 2, 2020 9:41 AM
To: John Levine <>
Subject: Re: [spfbis] SPF-checking tool

I don't know when I'm going to work on it, but this exchange has
convinced me we need an SPF lint tool.  This would not be in the
the module - but may import the module to reuse the same 
code as much as possible.

Some features:

  1) Fetch all records reachable from a policy.
  2) Report all syntax errors in reachable records.
  3) Compute worst case number of lookups
  4) Compute an ipset for all SPF results for both IPv4 and IPv6
     ( has a naive implementation of computing the Pass
      set that doesn't handle mechanisms with results other than Pass.
      It was trivial to do and is useful - that's my excuse.)

On Sun, 1 Mar 2020, John Levine wrote:

> In article <001501d5edf8$de80c130$9b824390$> you write:
>> I also understand your feedback -- but it is helpful to be
>> made aware of this kind of problem.
> The DMARC record in the wrong place is the least of billtrust's problems:
>	3600	IN	CNAME
>	600	IN	CNAME