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:
--fileor-file{filename} β read the query (or queries) from the designated file. and listen, if {filename} is0, then the query inputs get read from STDIN. yes,0is the secret code for "just take it from STDIN." π«Ά--ipor-ip{address} β the client IP address to use for the SPF check. π--senderor-sender{Mail From address} β the envelope sender that the mail was received from. π¨--heloor-helo{client hostname} β the HELO/EHLO name that the SMTP client used. π--localor-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-toorrcpt-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-explanationor-default-explanation{explanation string} β the default Fail explanation string to be used. π¬--sanitizeor-sanitize, and--debugor-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 Cspfqueryimplementations. 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. π¦π
πΈ
π¦ where this page comes from
- debian bookworm: spf-tools-python 2.0.14-3
- debian trixie: spf-tools-python 2.0.14-5
- ubuntu jammy: spf-tools-python 2.0.14-2
- ubuntu noble: spf-tools-python 2.0.14-3
- ubuntu resolute: spf-tools-python 2.0.14-5
- ubuntu stonking: spf-tools-python 2.0.14-7 Β· PSF-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms