Skip to content
inetGeek

SPF Checker

Find and inspect the SPF policy published for any domain.

SPF Checkerlive query

Queries public DNS-over-HTTPS resolvers and returns what they hold right now. Results are not stored.
01.

What is an SPF record?

SPF (Sender Policy Framework, RFC 7208) lists which servers are allowed to send mail using your domain in the envelope sender. It is published as a TXT record on the domain itself, beginning with "v=spf1".

A domain must publish at most one SPF record. Two SPF TXT records is a configuration error, and receivers are expected to treat it as permanently failing rather than picking one.

02.

Reading the mechanisms

Mechanisms are evaluated left to right. "ip4:" and "ip6:" authorise addresses directly, "a" and "mx" authorise the domain’s own address and mail-exchanger hosts, and "include:" pulls in another domain’s policy — which is how hosted mail providers are typically authorised.

The final term sets what happens when nothing matched. "-all" is a hard fail, "~all" is a soft fail that asks receivers to accept but mark the message, and "?all" expresses no opinion at all.

03.

What the result means

RFC 7208 defines seven outcomes, and they are not simply pass or fail. None means the domain publishes no SPF record at all. Neutral means it publishes one that declines to express an opinion about the sender.

Pass, fail and softfail are the three that reflect a policy decision: the sender was authorised, was not, or was not but the domain asked receivers to accept the message anyway and mark it.

Temperror and permerror are faults in the evaluation rather than verdicts on the sender. A permerror usually means the record is malformed, duplicated, or over the lookup limit below, and a receiver treating it as unusable is behaving correctly.

04.

The ten-lookup limit

SPF evaluation is capped at ten DNS-querying mechanisms — include, a, mx, ptr, exists and redirect all count. Exceeding it produces a permanent error, and receivers are expected to treat the result as unusable rather than ignoring the limit.

Long chains of nested "include:" terms are the usual cause. Each provider you add pulls in its own includes, so the count grows faster than the record looks.

05.

What a passing SPF record still will not stop

SPF authorises the envelope sender, the address used in the SMTP exchange, not the From address a recipient actually sees. A message can pass SPF cleanly while displaying any From address at all, which is why SPF on its own is not an answer to spoofing.

It also breaks on forwarding. A forwarded message reaches the destination from the forwarder’s server, which the original domain never authorised, so a legitimate message fails through no fault of the record.

Both gaps are why SPF is normally deployed alongside DKIM, which survives forwarding, and DMARC, which ties authentication to the visible From domain and accepts either one.

Reference

Related tools

When these numbers change, hear about it. Sources are re-checked monthly; a repricing goes out as a short note.

Confirm by email; unsubscribe from any issue. Your address goes to Kit and nowhere else — what we do with it.

Every page here is sourced and dated.