SPF(8) SPF(8) NAME spf - evaluate spf records SYNOPSIS upas/spf [ -demprv ] [ -n netroot ] domain [ ehlo ip ] DESCRIPTION Spf parses SPF records for domain and validates them against any additional arguments. If there are no additional argu- ments, the internal representation of the SPF records is printed. Typically, spf is invoked by smtpd (see smtp(8)) through the /mail/lib/validatesender script. There are four possible results of an spf invocation: success, no match, no record found and timeout. Unsuccessful results are indi- cated by exit codes beginning with fail, none, and deferred, respectively. The policy implented is that negatively biased results are the equivalent to negative match. Thus ~all is treated the same as -all. The -e flag makes this policy even more dra- conian, escalating neutral results to failure. This is use- ful for sites like gmail.com which enumerate all allowed hosts but end with an inclusive neutral result. This flag is not recomended as a default for all sites. Flags are as follows: -d print DNS queries as performed -e escalate; treat ?all as -all. The result ~all is always treated the same as -all. -m ignore macros -n netroot use the IP stack rooted at netroot. -p print the internal representation of the SPF records. This is the default if only one argument is given. -r trace include and redirect elements. -v print records resulting in postitive or negative match or bias. SEE ALSO smtp(8), Page 1 Plan 9 (printed 12/21/24) SPF(8) SPF(8) /lib/rfc/rfc4408 Sender Policy Framework /lib/rfc/rfc/4406 SenderID SOURCE /sys/src/cmd/upas/spf BUGS Exp records are ignored. Inproperly placed redirect queries are not evaluated last. Spf uses higher dns query limits than allowed by the RFC as the authors of the RFC use SPF records that require twice the allowed number of queries. Page 2 Plan 9 (printed 12/21/24)