spfquery.pyspf(1)

πŸ’– spfquery.pyspf(1) β€” the pure-Python spfquery script πŸ’–

okay bestie, sit down, we're doing SPF today and it's gonna be adorable. this is a page from the General Commands Manual, and it's all about spfquery.pyspf β€” a pure-Python spfquery script. 🐍✨


🌸 NAME 🌸

spfquery.pyspf β€” the pure-Python spfquery script. that's her. that's the girl. πŸ‘‘


⭐ VERSION ⭐

2.0.9 β€” yes queen, we know exactly which one we're running. no vibes-based guessing here. πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

so the spfquery script is a Python reimplementation of Wayne Schlitt's spfquery command line tool. same energy, new language, iconic behavior. πŸ”₯


✨ USAGE ✨

the spfquery script gets called with a bunch of possible options, and here's the cute part: options can either use the standard - prefix, or be PERL-style long options with --. pick your fighter, bestie, both are valid. πŸŽ€

supported options are:

  • --file or -file {filename} β€” read the query (or queries) from the designated file. and listen, if {filename} is 0, then the query inputs get read from STDIN. yes, 0 is the secret code for "just take it from STDIN." 🫢
  • --ip or -ip {address} β€” the client IP address to use for the SPF check. πŸ“
  • --sender or -sender {Mail From address} β€” the envelope sender that the mail was received from. πŸ“¨
  • --helo or -helo {client hostname} β€” the HELO/EHLO name that the SMTP client used. πŸ‘‹
  • --local or -local {local policy SPF string} β€” extra SPF mechanisms to be checked on the basis of local policy. 🚨 important caveat, bestie, read it twice: local policy matches are not strictly SPF results. local policy processing isn't defined in RFC 4408, and the result may vary among SPF implementations. so don't come for anyone when your output looks different, it's giving "implementation-defined" for a reason. 😭
  • --rcpt-to or rcpt-to {rcpt-to address - if available} β€” the receipt-to address isn't used for actual SPF processing, but if it is available it can be useful for logging, spf-received header construction, and for providing useful rejection messages when messages get rejected due to SPF. so like, not load-bearing, but very much a supportive bestie. πŸ’œ
  • --default-explanation or -default-explanation {explanation string} β€” the default Fail explanation string to be used. πŸ’¬
  • --sanitize or -sanitize, and --debug or -debug β€” these options are a no-op in the Python implementation. πŸ«₯ they're still valid inputs though, and that's on purpose: they exist to provide compatibility with input files developed to work with the original PERL and C spfquery implementations. so if you see them, don't panic, they're just vibing. 🌈

🧚 EXAMPLE 🧚

spfquery --sender scott@example.com --ip 192.0.2.0 [other options ...]

literally just look at her go. ✨


πŸ‘‘ SEE ALSO πŸ‘‘

RFC 7208, and also <http://www.openspf.org> β€” go read, iykyk. πŸ“š


πŸ’– AUTHORS πŸ’–

this version of spfquery was written by Stuart Gathman <stuart@bmsi.com>.

this man-page was created by Scott Kitterman <scott@kitterman.com>. πŸŽ€


and that's the whole page, bestie!! this was spfquery.pyspf(1), version 2.0.9, dated 2007-01-16, from the General Commands Manual β€” periodt. now go run your SPF checks, you absolute main character. πŸ¦‹πŸ’…πŸŒΈ