Difference between revisions of "SPF"
Line 9: | Line 9: | ||
directive = [ qualifier ] mechanism | directive = [ qualifier ] mechanism | ||
− | + | {{l/sub|qual}}ifier = "+" / "-" / "?" / "~" | |
mechanism = ( all / include / a / mx / ptr / ip4 / ip6 / exists ) | mechanism = ( all / include / a / mx / ptr / ip4 / ip6 / exists ) | ||
modifier = redirect / explanation / unknown-modifier | modifier = redirect / explanation / unknown-modifier |
Revision as of 23:58, 18 August 2022
SPF: Sender Policy Framework
|
About
SPF (Sender Policy Framework) is an anti-spam protocol in which a DNS record specifies what IP addresses are allowed to send messages with a "from" address coming from that domain. The IP addresses may be specified literally (numerically, using CIDR address-range syntax) or as domain-names. SPF is defined in RFC 7208 (status).
DNS Configuration
Discussion of the DNS record format is in Section 3. SPF uses TXT records; there must be only one SPF record per domain or subdomain. A record's contents must start with "v=spf1
" in order to be recognized as an SPF record.
The remainder of the contents consists of a set of terms, formatted according to these nearly-indecipherable rules:
terms = *( 1*SP ( directive / modifier ) )
directive = [ qualifier ] mechanism qualifier = "+" / "-" / "?" / "~" mechanism = ( all / include / a / mx / ptr / ip4 / ip6 / exists ) modifier = redirect / explanation / unknown-modifier unknown-modifier = name "=" macro-string ; where name is not any known modifier
name = ALPHA *( ALPHA / DIGIT / "-" / "_" / "." )
This seems to translate to "one or more terms, where each term starts with either {a qualifier followed by a directive (which is a qualifier plus a mechanism)} or a modifier, and multiple terms are separated by spaces".
Tentatively, it's best to think of "modifiers" as a small set of additional directives. It's noted in that they're intended to allow for future expansion