← Hashito System home 日本語 Tools Blog
Paste a record

This checks the syntax of the record text you paste. It does not query DNS, so it cannot follow include: chains or tell you whether the record is actually published.

What matters in SPF and DMARC

What is the ten DNS lookup limit?

RFC 7208 caps a single SPF evaluation at ten DNS lookups. Each include, a, mx, ptr, exists and redirect spends one. ip4 and ip6 spend none. Past the cap the result is permerror, which makes SPF useless at most receivers.

Is this count complete?

No. It counts only what the record you pasted spends by itself. Every include: target spends lookups of its own, so the real total is always higher. Without querying DNS this is the most that can be known, so read the number as headroom rather than a verdict.

What is the difference between -all and ~all?

-all (fail) states that nothing outside the listed sources is yours. ~all (softfail) says it probably is not, without committing. The usual path is to run ~all until you are sure nothing legitimate is missing, then move to -all.

What does +all do?

It authorises every IP address in the world. That is not a configured SPF record, it is a disabled one, and it removes the protection entirely. It is most often left behind after a test.

How do p= and sp= relate?

p= is the policy for the domain itself and sp= is the policy for its subdomains. With no sp= the subdomains inherit p=, so writing sp=none deliberately loosens the subdomains.

Frequently asked questions

Does this tool query DNS?

No. It checks the syntax of the text you paste. It therefore cannot follow include: chains, and it cannot confirm that the record is actually published.

How many SPF records may a domain have?

Exactly one. Two or more TXT records starting with v=spf1 on the same domain produce a permerror. To authorise another sender, add an include: to the existing record rather than publishing a second one.

Should I avoid ptr?

Yes. RFC 7208 section 5.5 deprecates it. It depends on reverse DNS, which is slow and unreliable, and it still spends a lookup. Replace it with ip4 or include.

What happens if pct= is below 100?

The policy applies to that share of messages and the rest are treated one step more leniently. It exists to stage a move towards reject, not as a permanent setting.

Is the record I paste uploaded?

No. The check runs entirely in your browser and nothing is sent to or stored on a server.