The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
---
description: various other tests
tests:
  spf-by-cname:
    description: >-
      TXT/SPF records can be referenced through CNAME
    comment: >-
      The SPF Lookup returns a CNAME and the SPF record
    spec: ""
    helo: mail.example.net
    host: 1.2.3.5
    mailfrom: user@example.net
    result: pass
  p-in-exp-mod:
    description: >-
      %{p} in exp= modifier
    spec: ""
    helo: mail.example.net
    host: 1.2.3.5
    mailfrom: user@example1.net
    explanation: forbidden for one.two.three.five.example.net
    result: fail
  sender-id:
    description: >-
      no SPF record but SenderID
    spec: ""
    helo: mail.example.net
    host: 1.2.3.5
    mailfrom: user@example2.net
    result: pass
  sender-id-pick-mfrom1:
    description: >-
      SenderID with mfrom and pra, pick mfrom
    spec: ""
    helo: mail.example.net
    host: 1.2.3.5
    mailfrom: user@example3.net
    result: pass
  sender-id-pick-mfrom2:
    description: >-
      SenderID with mfrom and pra, pick mfrom
    spec: ""
    helo: mail.example.net
    host: 1.2.3.5
    mailfrom: user@example4.net
    result: fail
  sender-id-pick-spf:
    description: >-
      SenderID with mfrom and SPF, pick SPF
    spec: ""
    helo: mail.example.net
    host: 1.2.3.5
    mailfrom: user@example5.net
    result: pass
  domain-dots-at-end:
    description: >-
      multiple dots at end of domain name are illegal
    spec: "4.3/1"
    helo: mail.example.net
    host: 1.2.3.5
    mailfrom: user@example5.net....
    result: none
  ptr-cname:
    description: >-
      PTR record is CNAME to PTR record
    spec: ""
    helo: mail.example.net
    host: 2.3.4.5
    mailfrom: user@example6.net
    result: pass
  second-include:
    description: >-
      second include matches
    spec: ""
    helo: mail.example.net
    host: 3.4.5.6
    mailfrom: user@example7.net
    result: pass
zonedata:
  example.net:
    - CNAME: example.com
  example.com:
    - SPF:  v=spf1 ip4:1.2.3.5 -all
  example1.net:
    - SPF:  v=spf1 -ip4:1.2.3.5 all exp=%{p4r}.explain.example1.net
  5.3.2.1.in-addr.arpa:
    - PTR: one.two.three.five.example.net
  one.two.three.five.example.net:
    - A: 1.2.3.5
  five.three.two.one.explain.example1.net:
    - TXT: forbidden for %{p}
  unknown.explain.example1.net:
    - TXT: bad message for %{p}
  example2.net:
    - SPF:  spf2.0/pra,mfrom ip4:1.2.3.5 -all
  example3.net:
    - SPF:  spf2.0/pra -ip4:1.2.3.5 all
    - SPF:  spf2.0/mfrom ip4:1.2.3.5 -all
  example4.net:
    - SPF:  spf2.0/mfrom -ip4:1.2.3.5 all
    - SPF:  spf2.0/pra ip4:1.2.3.5 -all
  example5.net:
    - SPF:  spf2.0/mfrom -ip4:1.2.3.5 all
    - SPF:  v=spf1 ip4:1.2.3.5 -all
  example6.net:
    - SPF:  v=spf1 ptr:friend.example6.net -all
  5.4.3.2.in-addr.arpa:
    - CNAME: two.three.four.five.example.net
  two.three.four.five.example.net:
    - PTR: friend.example6.net
  friend.example6.net:
    - A: 2.3.4.5
  example7.net:
    - SPF: v=spf1 include:example.com include:example8.net -all
  example8.net: 
    - SPF: v=spf1 ip4:2.3.4.5 ip4:3.4.5.6 -all