# this file is read by test.pl # # it can be used as a common test configurator for all SPF client libraries. # meng will keep it up to date to match spf1-test.mailzone.com. # # tab-separated format: # # test_number i know this starts at 2; test 1 is for loading the test.txt itself # sender where no username@ is provided, substitute droid@ for the localpart # client_ip the IP of the pretend client # result expected result # [smtp_comment] optional smtp comment # [header_comment] optional header comment (not counting the local "domain name: " prefix) # # The sender field can have a ':' in it. In this case the part of the field after the colon # contains a local policy to be used just before the terminating 'all'. # # most tests have no smtp_comment / header_comment. # to execute a test, feed the SPF client library the sender / client_ip input tuple, # and see if you get back the expected result. # # keep the numbers straight with perl -ple 'BEGIN { $num = 1 } s/(?:^|\G)(\d+)(,)?/++$num . "$2"/eg;' 2 localhost.localdomain 127.0.0.1 pass # '01.spf1-test.mailzone.com:v=spf1 :60 # '02.spf1-test.mailzone.com:v=spf1 -all :60 # '03.spf1-test.mailzone.com:v=spf1 ~all:60 # '04.spf1-test.mailzone.com:v=spf1 +all :60::poboxnet # '05.spf1-test.mailzone.com:v=spf1 default=deny :60 # '06.spf1-test.mailzone.com:v=spf1 ?all :60 # '07.spf1-test.mailzone.com:v=spf2 default=bogus :60 3 01.spf1-test.mailzone.com 192.0.2.1 neutral 4 02.spf1-test.mailzone.com 192.0.2.1 fail 5 03.spf1-test.mailzone.com 192.0.2.1 softfail 6 05.spf1-test.mailzone.com 192.0.2.1 fail 7,8,9 06.spf1-test.mailzone.com 192.0.2.1 neutral /./ 192.0.2.1 is neither permitted nor denied by domain of 06.spf1-test.mailzone.com 10 07.spf1-test.mailzone.com 192.0.2.1 none 11 08.spf1-test.mailzone.com 192.0.2.1 fail # '08.spf1-test.mailzone.com:v=spf1 -all ?all :60 # '09.spf1-test.mailzone.com:v=spf1 scope=header-from scope=envelope -all :60 # '10.spf1-test.mailzone.com:v=spf1 mx -all:60 12 10.spf1-test.mailzone.com 192.0.2.1 fail 13 10.spf1-test.mailzone.com 192.0.2.10 pass 14 10.spf1-test.mailzone.com 192.0.2.11 pass 15 10.spf1-test.mailzone.com 192.0.2.12 pass 16 10.spf1-test.mailzone.com 192.0.2.13 pass 17 10.spf1-test.mailzone.com 192.0.2.20 pass 18 10.spf1-test.mailzone.com 192.0.2.21 pass 19 10.spf1-test.mailzone.com 192.0.2.22 pass 20 10.spf1-test.mailzone.com 192.0.2.23 pass 21 10.spf1-test.mailzone.com 192.0.2.30 pass 22 10.spf1-test.mailzone.com 192.0.2.31 pass 23 10.spf1-test.mailzone.com 192.0.2.32 pass 24 10.spf1-test.mailzone.com 192.0.2.33 pass 25 10.spf1-test.mailzone.com 192.0.2.34 fail # @10.spf1-test.mailzone.com::mx01.spf1-test.mailzone.com:10:60 # @10.spf1-test.mailzone.com::mx02.spf1-test.mailzone.com:10:60 # @10.spf1-test.mailzone.com::mx03.spf1-test.mailzone.com:20:60 # # @12.spf1-test.mailzone.com::mx01.spf1-test.mailzone.com:10:60 # @12.spf1-test.mailzone.com::mx02.spf1-test.mailzone.com:10:60 # @12.spf1-test.mailzone.com::mx03.spf1-test.mailzone.com:20:60 # # @14.spf1-test.mailzone.com::mx01.spf1-test.mailzone.com:10:60 # @14.spf1-test.mailzone.com::mx02.spf1-test.mailzone.com:10:60 # @14.spf1-test.mailzone.com::mx03.spf1-test.mailzone.com:20:60 # '11.spf1-test.mailzone.com:v=spf1 mx\072spf1-test.mailzone.com -all:60 26 11.spf1-test.mailzone.com 192.0.2.1 fail 27 11.spf1-test.mailzone.com 192.0.2.10 pass 28 11.spf1-test.mailzone.com 192.0.2.33 pass # '12.spf1-test.mailzone.com:v=spf1 mx mx\072spf1-test.mailzone.com -all:60 29 12.spf1-test.mailzone.com 192.0.2.1 fail 30 12.spf1-test.mailzone.com 192.0.2.10 pass 31 12.spf1-test.mailzone.com 192.0.2.33 pass 32 12.spf1-test.mailzone.com 208.210.124.192 fail # '13.spf1-test.mailzone.com:v=spf1 mx\072spf1-test.mailzone.com mx\072fallback-relay.spf1-test.mailzone.com -all:60 33 13.spf1-test.mailzone.com 192.0.2.1 fail 34 13.spf1-test.mailzone.com 192.0.2.10 pass 35 13.spf1-test.mailzone.com 192.0.2.33 pass 36 13.spf1-test.mailzone.com 208.210.124.192 fail 37 13.spf1-test.mailzone.com 192.0.2.40 pass # '14.spf1-test.mailzone.com:v=spf1 mx mx\072spf1-test.mailzone.com mx\072fallback-relay.spf1-test.mailzone.com -all:60 38 14.spf1-test.mailzone.com 192.0.2.1 fail 39 14.spf1-test.mailzone.com 192.0.2.10 pass 40 14.spf1-test.mailzone.com 192.0.2.33 pass 41 14.spf1-test.mailzone.com 208.210.124.192 fail 42 14.spf1-test.mailzone.com 192.0.2.40 pass # # the spf1-test.mailzone.com domain has two A records and three MX records. # # the first A record has no PTR. the second does. it's real. # @spf1-test.mailzone.com::mx01.spf1-test.mailzone.com:10:60 # @spf1-test.mailzone.com::mx02.spf1-test.mailzone.com:10:60 # @spf1-test.mailzone.com::mx03.spf1-test.mailzone.com:20:60 # # +spf1-test.mailzone.com:192.0.2.200:60 # =spf1-test.mailzone.com:208.210.124.192:60 # # @fallback-relay.spf1-test.mailzone.com::mx04.spf1-test.mailzone.com:10:60 # # +mx01.spf1-test.mailzone.com:192.0.2.10:60 # +mx01.spf1-test.mailzone.com:192.0.2.11:60 # +mx01.spf1-test.mailzone.com:192.0.2.12:60 # +mx01.spf1-test.mailzone.com:192.0.2.13:60 # # +mx02.spf1-test.mailzone.com:192.0.2.20:60 # +mx02.spf1-test.mailzone.com:192.0.2.21:60 # +mx02.spf1-test.mailzone.com:192.0.2.22:60 # +mx02.spf1-test.mailzone.com:192.0.2.23:60 # # +mx03.spf1-test.mailzone.com:192.0.2.30:60 # +mx03.spf1-test.mailzone.com:192.0.2.31:60 # +mx03.spf1-test.mailzone.com:192.0.2.32:60 # +mx03.spf1-test.mailzone.com:192.0.2.33:60 # # +mx04.spf1-test.mailzone.com:192.0.2.40:60 # +mx04.spf1-test.mailzone.com:192.0.2.41:60 # +mx04.spf1-test.mailzone.com:192.0.2.42:60 # +mx04.spf1-test.mailzone.com:192.0.2.43:60 # # '20.spf1-test.mailzone.com:v=spf1 a -all:60 43 20.spf1-test.mailzone.com 192.0.2.1 fail 44 20.spf1-test.mailzone.com 192.0.2.120 pass # '21.spf1-test.mailzone.com:v=spf1 a\072spf1-test.mailzone.com -all:60 45 21.spf1-test.mailzone.com 192.0.2.1 fail 46 21.spf1-test.mailzone.com 192.0.2.121 fail 47 21.spf1-test.mailzone.com 192.0.2.200 pass # '22.spf1-test.mailzone.com:v=spf1 a a\072spf1-test.mailzone.com -all:60 48 22.spf1-test.mailzone.com 192.0.2.1 fail 49 22.spf1-test.mailzone.com 192.0.2.122 pass 50 22.spf1-test.mailzone.com 192.0.2.200 pass # # +20.spf1-test.mailzone.com:192.0.2.120:60 # +21.spf1-test.mailzone.com:192.0.2.121:60 # +22.spf1-test.mailzone.com:192.0.2.122:60 # # '30.spf1-test.mailzone.com:v=spf1 ptr -all:60 # '30.spf1-test.mailzone.com:v=spf1 ptr default=softdeny:60 51 30.spf1-test.mailzone.com 64.236.24.4 fail 52 30.spf1-test.mailzone.com 208.210.124.130 pass # '31.spf1-test.mailzone.com:v=spf1 ptr\072spf1-test.mailzone.com -all:60 53 31.spf1-test.mailzone.com 64.236.24.4 fail 54 31.spf1-test.mailzone.com 208.210.124.130 pass 55 31.spf1-test.mailzone.com 208.210.124.192 pass # '32.spf1-test.mailzone.com:v=spf1 ptr ptr\072spf1-test.mailzone.com -all:60 56 32.spf1-test.mailzone.com 64.236.24.4 fail 57 32.spf1-test.mailzone.com 208.210.124.130 pass 58 32.spf1-test.mailzone.com 208.210.124.131 pass 59 32.spf1-test.mailzone.com 208.210.124.192 pass # =30.spf1-test.mailzone.com:208.210.124.130:60 # =31.spf1-test.mailzone.com:208.210.124.131:60 # =32.spf1-test.mailzone.com:208.210.124.132:60 # '40.spf1-test.mailzone.com:v=spf1 exists\072%{ir}.%{v}._spf.%{d} -all:60 60 40.spf1-test.mailzone.com 192.0.2.100 pass 61 40.spf1-test.mailzone.com 192.0.2.101 pass 62 40.spf1-test.mailzone.com 192.0.2.102 fail # '41.spf1-test.mailzone.com:v=spf1 exists\072%{ir}.%{v}._spf.spf1-test.mailzone.com -all:60 63 41.spf1-test.mailzone.com 192.0.2.100 fail 64 41.spf1-test.mailzone.com 192.0.2.110 pass 65 41.spf1-test.mailzone.com 192.0.2.111 pass # '42.spf1-test.mailzone.com:v=spf1 exists\072%{ir}.%{v}._spf.%{d} exists\072%{ir}.%{v}._spf.%{d3} -all:60 66 42.spf1-test.mailzone.com 192.0.2.100 fail 67 42.spf1-test.mailzone.com 192.0.2.110 pass 68 42.spf1-test.mailzone.com 192.0.2.130 pass 69 42.spf1-test.mailzone.com 192.0.2.131 pass # # +100.2.0.192.in-addr._spf.40.spf1-test.mailzone.com:127.0.0.2:60 # +101.2.0.192.in-addr._spf.40.spf1-test.mailzone.com:127.0.0.2:60 # # +110.2.0.192.in-addr._spf.spf1-test.mailzone.com:127.0.0.2:60 # +111.2.0.192.in-addr._spf.spf1-test.mailzone.com:127.0.0.2:60 # # +120.2.0.192.spf1-test.mailzone.com:127.0.0.2:60 # +121.2.0.192.spf1-test.mailzone.com:127.0.0.2:60 # # +130.2.0.192.in-addr._spf.42.spf1-test.mailzone.com:127.0.0.2:60 # +131.2.0.192.in-addr._spf.42.spf1-test.mailzone.com:127.0.0.2:60 # # '45.spf1-test.mailzone.com:v=spf1 -a a\072spf1-test.mailzone.com -all:60 70 45.spf1-test.mailzone.com 192.0.2.140 fail 71 45.spf1-test.mailzone.com 192.0.2.145 fail 72 45.spf1-test.mailzone.com 192.0.2.146 fail 73 45.spf1-test.mailzone.com 192.0.2.147 fail 74 45.spf1-test.mailzone.com 192.0.2.148 fail 75 45.spf1-test.mailzone.com 208.210.124.192 pass 76 45.spf1-test.mailzone.com 192.0.2.200 pass # # +45.spf1-test.mailzone.com:192.0.2.145:60 # +45.spf1-test.mailzone.com:192.0.2.146:60 # +45.spf1-test.mailzone.com:192.0.2.147:60 # # '50.spf1-test.mailzone.com:v=spf1 include -all:60 77 50.spf1-test.mailzone.com 192.0.2.200 unknown # '51.spf1-test.mailzone.com:v=spf1 include\07242.spf1-test.mailzone.com -all:60 78 51.spf1-test.mailzone.com 192.0.2.200 fail 79 51.spf1-test.mailzone.com 192.0.2.130 pass # '52.spf1-test.mailzone.com:v=spf1 include\07253.spf1-test.mailzone.com -all:60 # C53.spf1-test.mailzone.com:54.spf1-test.mailzone.com # '54.spf1-test.mailzone.com:v=spf1 include\07242.spf1-test.mailzone.com -all:60 80 52.spf1-test.mailzone.com 192.0.2.200 fail 81 52.spf1-test.mailzone.com 192.0.2.130 pass # '55.spf1-test.mailzone.com:v=spf1 include\07256.spf1-test.mailzone.com -all:60 82 55.spf1-test.mailzone.com 192.0.2.200 unknown 83 55.spf1-test.mailzone.com 192.0.2.130 unknown # SPF1_TEST(56) deliberately left blank 84 56.spf1-test.mailzone.com 192.0.2.200 fail # TODO: none and fail are both acceptable. we need a way to indicate that multiple result codes are OK. # include something that doesn't have SPF records # '57.spf1-test.mailzone.com:v=spf1 include\072spf1-test.mailzone.com -all:60 85 57.spf1-test.mailzone.com 192.0.2.200 unknown 86 57.spf1-test.mailzone.com 192.0.2.130 unknown # loop detection # '58.spf1-test.mailzone.com:v=spf1 include\07259.spf1-test.mailzone.com -all:60 # '59.spf1-test.mailzone.com:v=spf1 include\07258.spf1-test.mailzone.com -all:60 87 58.spf1-test.mailzone.com 192.0.2.200 unknown 88 59.spf1-test.mailzone.com 192.0.2.130 unknown # '70.spf1-test.mailzone.com:v=spf1 exists\072%{lr+=}.lp._spf.spf1-test.mailzone.com -all:60 # # +*.bob.lp._spf.spf1-test.mailzone.com:127.0.0.2:60 # +bob.lp._spf.spf1-test.mailzone.com:127.0.0.2:60 # # # no entries for joe. # 'SPF1_TEST(70):v=spf1 exists\072%{lr+=}.lp._spf.spf1-test.mailzone.com -all:60 89 droid@70.spf1-test.mailzone.com 192.0.2.103 fail 90 bob+1@70.spf1-test.mailzone.com 192.0.2.103 pass 91 bob+2@70.spf1-test.mailzone.com 192.0.2.103 pass 92 bob@70.spf1-test.mailzone.com 192.0.2.103 pass 93 joe+1@70.spf1-test.mailzone.com 192.0.2.103 fail 94 joe-2@70.spf1-test.mailzone.com 192.0.2.103 fail 95 moe-1@70.spf1-test.mailzone.com 192.0.2.103 fail # client should substitute mailer-daemon when no localpart. 96 70.spf1-test.mailzone.com 192.0.2.103 pass # '80.spf1-test.mailzone.com:v=spf1 a mx exists\072%{ir}.%{v}._spf.80.spf1-test.mailzone.com ptr -all:60 # =80.spf1-test.mailzone.com:208.210.124.180:60 # +80.2.0.192.in-addr._spf.80.spf1-test.mailzone.com:127.0.0.2:60 97 80.spf1-test.mailzone.com 64.236.24.4 fail 98 80.spf1-test.mailzone.com 208.210.124.180 pass 99 80.spf1-test.mailzone.com 192.0.2.80 pass # '90.spf1-test.mailzone.com:v=spf1 ip4\072192.0.2.128/25 -all:60 100 90.spf1-test.mailzone.com 192.0.2.1 fail 101 90.spf1-test.mailzone.com 192.0.2.127 fail 102 90.spf1-test.mailzone.com 192.0.2.129 pass # '91.spf1-test.mailzone.com:v=spf1 -ip4\072192.0.2.128/25 ip4\072192.0.2.0/24 -all:60 103 91.spf1-test.mailzone.com 192.168.1.1 fail 104 91.spf1-test.mailzone.com 192.0.2.127 pass 105 91.spf1-test.mailzone.com 192.0.2.129 fail # '92.spf1-test.mailzone.com:v=spf1 ?ip4\072192.0.2.192/26 ip4\072192.0.2.128/25 -ip4\072192.0.2.0/24 -all:60 106 92.spf1-test.mailzone.com 192.168.2.1 fail 107 92.spf1-test.mailzone.com 192.0.2.1 fail 108 92.spf1-test.mailzone.com 192.0.2.129 pass 109 92.spf1-test.mailzone.com 192.0.2.193 neutral # '95.spf1-test.mailzone.com:v=spf1 exists\072%{p}.whitelist.spf1-test.mailzone.com -all:60 # '96.spf1-test.mailzone.com:v=spf1 -exists\072%{d}.blacklist.spf1-test.mailzone.com -all:60 # '97.spf1-test.mailzone.com:v=spf1 exists\072%{p}.whitelist.spf1-test.mailzone.com -exists\072%{d}.blacklist.spf1-test.mailzone.com -all:60 110 95.spf1-test.mailzone.com 208.210.124.180 pass 111 95.spf1-test.mailzone.com 208.210.124.1 fail 112 96.spf1-test.mailzone.com 192.0.2.193 fail 113 97.spf1-test.mailzone.com 208.210.124.180 pass # +*.spf1-test.mailzone.com.blacklist.spf1-test.mailzone.com:127.0.0.2:60 # +*.spf1-test.mailzone.com.whitelist.spf1-test.mailzone.com:127.0.0.2:60 # '98.spf1-test.mailzone.com:v=spf1 a/26 mx/26 -all:60 # +98.spf1-test.mailzone.com:192.0.2.98:60 # @98.spf1-test.mailzone.com::80.spf1-test.mailzone.com:10:60 114 98.spf1-test.mailzone.com 192.0.2.1 fail 115 98.spf1-test.mailzone.com 192.0.2.98 pass 116 98.spf1-test.mailzone.com 192.0.2.99 pass 117 98.spf1-test.mailzone.com 208.210.124.180 pass 118 98.spf1-test.mailzone.com 208.210.124.1 fail 119 98.spf1-test.mailzone.com 208.210.124.181 pass # 'SPF1_TEST(08):v=spf2 default=softdeny default=deny :60 # 'SPF1_TEST(09):v=spf2 scope=header-from scope=envelope default=deny :60 120 08.spf1-test.mailzone.com 192.0.2.1 fail 121 09.spf1-test.mailzone.com 192.0.2.1 fail # '99.spf1-test.mailzone.com:v=spf1 -all exp=99txt.spf1-test.mailzone.com moo:60 # '99txt.spf1-test.mailzone.com:%u %s %d %t %h %i %% %U %S %D %T %H %I %% moo:60 122 99.spf1-test.mailzone.com 192.0.2.1 fail # testing redirection # '100.spf1-test.mailzone.com:v=spf1 redirect=98.spf1-test.mailzone.com:60 123 100.spf1-test.mailzone.com 192.0.2.1 fail 124 100.spf1-test.mailzone.com 192.0.2.98 pass # '101.spf1-test.mailzone.com:v=spf1 -all redirect=98.spf1-test.mailzone.com:60 125 101.spf1-test.mailzone.com 192.0.2.98 fail # '102.spf1-test.mailzone.com:v=spf1 ?all redirect=98.spf1-test.mailzone.com:60 126 102.spf1-test.mailzone.com 192.0.2.98 neutral # '103.spf1-test.mailzone.com:v=spf1 redirect=98.%{d3}:60 127 103.spf1-test.mailzone.com 192.0.2.98 pass # '104.spf1-test.mailzone.com:v=spf1 redirect=105.%{d3}:60 # '105.spf1-test.mailzone.com:v=spf1 redirect=106.%{d3}:60 # '106.spf1-test.mailzone.com:v=spf1 redirect=107.%{d3}:60 # '107.spf1-test.mailzone.com:v=spf1 include\072104.%{d3}:60 128,129,130 droid@104.spf1-test.mailzone.com 192.0.2.98 unknown SPF record error: loop encountered: 104.spf1-test.mailzone.com redirects to 105.spf1-test.mailzone.com redirects to 106.spf1-test.mailzone.com redirects to 107.spf1-test.mailzone.com includes 104.spf1-test.mailzone.com error in processing during lookup of droid@104.spf1-test.mailzone.com 131,132,133 droid@110.spf1-test.mailzone.com 192.0.2.98 unknown some:unrecognized=mechanism SPF record error: unrecognized mechanism some:unrecognized=mechanism encountered unrecognized mechanism during SPF processing of domain of droid@110.spf1-test.mailzone.com # the following tests are for Mail::SPF::Query's result2 and message_result2 methods only. 134,135,136 20.spf1-test.mailzone.com 192.0.2.33 foo@bar.com=fail,foo@spf1-test.mailzone.com=fail,fail 137,138,139,140 20.spf1-test.mailzone.com 192.0.2.33 foo@spf1-test.mailzone.com=pass,foo@bar.com=fail,fail . domain of 20.spf1-test.mailzone.com does not designate 192.0.2.33 as permitted sender 141,142,143 20.spf1-test.mailzone.com 192.0.2.33 foo@spf1-test.mailzone.com=pass,pass . message received from 192.0.2.33 which is an MX secondary for foo@spf1-test.mailzone.com 144,145 20.spf1-test.mailzone.com 192.0.2.33 foo@bar.com=fail,fail 146,147,148 20.spf1-test.mailzone.com 192.0.2.34 foo@spf1-test.mailzone.com=fail,foo@bar.com=fail,fail 149,150,151 20.spf1-test.mailzone.com 192.0.2.120 dog@cat.com=pass,foo@bar.com=pass,pass 152,153 20.spf1-test.mailzone.com 192.0.2.120 dog@cat.com;foo@bar.com=pass,pass 154,155,156 20.spf1-test.mailzone.com 192.0.2.33 foo@spf1-test.mailzone.com;foo@bar.com=fail,fail . domain of 20.spf1-test.mailzone.com does not designate 192.0.2.33 as permitted sender 157,158,159 20.spf1-test.mailzone.com 192.0.2.33 foo@bar.com;foo@spf1-test.mailzone.com=fail,fail . domain of 20.spf1-test.mailzone.com does not designate 192.0.2.33 as permitted sender # tests for localpolicy overrides 160 103.spf1-test.mailzone.com:-all 192.0.2.98 pass 161,162,163 20.spf1-test.mailzone.com:+all 192.0.2.1 pass /./ local policy designates 192.0.2.1 as permitted sender 164,165,166 20.spf1-test.mailzone.com:+ip4:192.0.2.1 192.0.2.1 pass /./ local policy designates 192.0.2.1 as permitted sender 167 20.spf1-test.mailzone.com:+ip4:192.0.2.2 192.0.2.1 fail # '91.spf1-test.mailzone.com:v=spf1 -ip4\072192.0.2.128/25 ip4\072192.0.2.0/24 -all:60 168 91.spf1-test.mailzone.com:ip4:192.168.1.0/24 192.168.1.1 pass 169 91.spf1-test.mailzone.com:-ip4:192.0.0.0/8 192.0.2.127 pass 170 91.spf1-test.mailzone.com:ip4:192.0.0.0/8 192.0.2.129 fail # '92.spf1-test.mailzone.com:v=spf1 ?ip4\072192.0.2.192/26 ip4\072192.0.2.128/25 -ip4\072192.0.2.0/24 -all:60 171 92.spf1-test.mailzone.com:+all 192.168.2.1 pass 172 92.spf1-test.mailzone.com:+all 192.0.2.1 pass 173 92.spf1-test.mailzone.com:-all 192.0.2.129 pass 174 92.spf1-test.mailzone.com:-all 192.0.2.193 neutral # '100.spf1-test.mailzone.com:v=spf1 redirect=98.spf1-test.mailzone.com:60 175 100.spf1-test.mailzone.com:+all 192.0.2.1 pass 176 100.spf1-test.mailzone.com:-all 192.0.2.98 pass # '101.spf1-test.mailzone.com:v=spf1 -all redirect=98.spf1-test.mailzone.com:60 177 101.spf1-test.mailzone.com:+all 192.0.2.98 fail # '102.spf1-test.mailzone.com:v=spf1 ?all redirect=98.spf1-test.mailzone.com:60 178 102.spf1-test.mailzone.com:+all 192.0.2.98 neutral # '51.spf1-test.mailzone.com:v=spf1 include\07242.spf1-test.mailzone.com -all:60 # '10.spf1-test.mailzone.com:v=spf1 mx -all:60 179,180,181 10.spf1-test.mailzone.com:include:42.%{d3} 192.0.2.200 fail explanation domain of 10.spf1-test.mailzone.com does not designate 192.0.2.200 as permitted sender 182,183,184 10.spf1-test.mailzone.com:include:42.%{d3} +all 192.0.2.200 pass /./ local policy designates 192.0.2.200 as permitted sender 185,186,187 10.spf1-test.mailzone.com:include:42.%{d3} +all 192.0.2.110 pass /./ SPF record at 42.spf1-test.mailzone.com designates 192.0.2.110 as permitted sender 188,189,190 42-27@10.spf1-test.mailzone.com:include:%{l1r-}.%{d3} +all 192.0.2.110 pass /./ SPF record at 42.spf1-test.mailzone.com designates 192.0.2.110 as permitted sender 191,192,193 42-27@10.spf1-test.mailzone.com:include:%{l1r0-9}.%{d3} +all 192.0.2.110 pass /./ SPF record at 42.spf1-test.mailzone.com designates 192.0.2.110 as permitted sender 194,195,196 42-27@10.spf1-test.mailzone.com:include:%{l1r^-}.%{d3} +all 192.0.2.110 pass /./ SPF record at 42.spf1-test.mailzone.com designates 192.0.2.110 as permitted sender 197,198,199 42di27@10.spf1-test.mailzone.com:include:%{l1r:digit:}.%{d3} +all 192.0.2.110 pass /./ SPF record at 42.spf1-test.mailzone.com designates 192.0.2.110 as permitted sender 200,201,202 42\07227@10.spf1-test.mailzone.com:include:%{l1r:digit:}.%{d3} +all 192.0.2.110 pass /./ SPF record at 42.spf1-test.mailzone.com designates 192.0.2.110 as permitted sender 203,204,205 42\07227@10.spf1-test.mailzone.com:include:%{l1r$foo:}.%{d3} +all 192.0.2.110 pass /./ SPF record at 42.spf1-test.mailzone.com designates 192.0.2.110 as permitted sender 206,207,208 42\27@10.spf1-test.mailzone.com:include:%{l1r$fo\o:}.%{d3} +all 192.0.2.110 pass /./ SPF record at 42.spf1-test.mailzone.com designates 192.0.2.110 as permitted sender 209,210,211 42-27@10.spf1-test.mailzone.com:include:%{l1r-[]}.%{d3} +all 192.0.2.110 pass /./ SPF record at 42.spf1-test.mailzone.com designates 192.0.2.110 as permitted sender 212,213,214 42327@10.spf1-test.mailzone.com:include:%{l1r-[]3}.%{d3} +all 192.0.2.110 pass /./ SPF record at 42.spf1-test.mailzone.com designates 192.0.2.110 as permitted sender 215,216,217 10.spf1-test.mailzone.com:include:01.%{d3} include:02.%{d3} include:06.%{d3} +all 192.0.2.110 pass /./ local policy designates 192.0.2.110 as permitted sender 218,219,220 10.spf1-test.mailzone.com:include:servfail.%{d3} 192.0.2.200 error explanation: DNS error while looking up servfail.spf1-test.mailzone.com TXT: SERVFAIL encountered temporary error during SPF processing of domain of 10.spf1-test.mailzone.com 221,222,223 10.spf1-test.mailzone.com:~all 192.0.2.200 softfail explanation transitioning local policy does not designate 192.0.2.200 as permitted sender