1. Home
  2. Developer tools
  3. SPF Record Checker

SPF Record Checker

SPF stops working quietly when a record needs more than 10 DNS lookups. Enter a domain and the checker follows each include, counts the lookups and lists what it finds.

Free, no sign-up. Runs in your browser; see “Private by design” for the one online step.

How to use SPF Record Checker

  1. Enter a domain name.
  2. Press Check SPF.
  3. Read the counts, the findings and the tree.

Features

  • Follows include, a, mx and redirect like a receiver
  • Counts lookups against the limit of 10 and void lookups against 2
  • Detects multiple records, +all, loops and ptr
  • Tree of included records
  • IPv4 and IPv6 ranges gathered
  • Flattened record suggestion

Supported formats

Input

  • Domain names
  • Typed or pasted text

You get

  • SPF tree
  • Lookup count
  • Findings

Private by design

Nothing is sent until you press the button. Then the domain names or addresses needed for the check (for example the name and the record type) are sent over HTTPS to the resolver you choose, Cloudflare (cloudflare-dns.com) or Google (dns.google), which see them under their own privacy terms and your IP address. openWorkstand never receives them. How local processing works

Good to know

  • The check follows RFC 7208 limits but cannot evaluate a real sending IP address.
  • Macros in records are listed but not expanded.

Guide

SPF and the ten-lookup limit: reading and repairing your record

SPF is a list, published in DNS, of the servers allowed to send mail for a domain. It looks harmless until a company adds its tenth email service and mail starts failing for no visible reason. The cause is a limit in the specification: evaluating a record may trigger at most ten DNS queries. The page evaluates your record the way a receiver does and tells you how close you are.

How a receiver evaluates SPF

The receiving server takes the domain from the envelope sender, looks up its TXT record starting with v=spf1, and checks the connecting IP address against the terms from left to right. The first term that matches decides the result through its qualifier: + pass (the default), - fail, ~ soft fail, ? neutral. Terms such as include: start a nested evaluation of another domain’s record, and redirect= replaces the whole record with another. RFC 7208 allows at most ten terms that require a DNS lookup per evaluation (include, a, mx, ptr, exists, redirect), counting those in nested records, and at most two lookups that return nothing (void lookups). Exceeding either gives a permanent error, and receivers may treat the mail as failing.

Reading the result

The summary shows the number of SPF records found (it must be exactly one), the DNS lookups used out of 10, the void lookups out of 2, the number of IPv4 and IPv6 ranges, and how the record ends. Findings list problems: more than one record, +all (anyone may send), a loop where a record includes itself, ptr, which is slow and discouraged, and ending in ~all or -all or neither. The table “Record and includes” is the tree: each included domain with the number of lookups it adds and its record text. Macros such as %{i} are listed, not expanded.

Fixing a record that is over the limit

First remove includes for services you no longer use; each costs at least one lookup, and some providers’ records add several more behind the scenes. Second, replace a and mx mechanisms with explicit ip4: and ip6: ranges where the addresses are stable. Third, consider flattening: substituting each include with the addresses it expands to, which the page prints as a ready version. Flattened records use no lookups, but they go stale when a provider changes its ranges, so automate regeneration or choose a service that keeps it updated. Splitting senders across subdomains is a further option.

A worked example

Press Sample to check github.com. When this guide was reviewed the page found 1 SPF record, 10 of 10 DNS lookups used and 0 of 2 void lookups, with 48 IPv4 and 11 IPv6 ranges. The record ends in ~all, shown as a warning because all ten lookups are used: “adding another service may break SPF”. The tree shows the includes, such as one for Microsoft 365, two for Google netblocks, and others for support, marketing and bulk mail providers, with the lookups each adds. A result of 10 of 10 is legal but leaves no room.

Limits

The checker evaluates the record, not a specific message: it cannot say whether a particular IP address passes. It does not expand macros or check that the sender’s own envelope domain matches the visible From address, which DMARC cares about. DNS answers come from a public resolver and might be cached. Use the DMARC Checker for the policy that uses SPF’s result.

Checked against the current version of the SPF Record Checker on .

Frequently asked questions

What do the symbols before each mechanism mean?

A plus (the default) means pass, a minus means fail, a tilde means soft fail and a question mark means neutral. The qualifier before all, such as -all or ~all, decides what happens to senders not listed earlier.

Why are some mechanisms free and others not?

Terms that need DNS to evaluate (include, a, mx, ptr, exists and redirect) count toward the limit. Terms that contain the answer, ip4, ip6 and all, do not. A record that uses only addresses never runs out of lookups.

What happens when SPF needs more than 10 lookups?

Receivers return a permanent error (permerror), and many treat the mail as failing SPF. Remove unused includes or flatten the record.

Can a domain have two SPF records?

No. Two records starting with v=spf1 cause a permanent error. Merge them into a single record.

Is anything sent over the internet?

Nothing is sent until you press the button. Then the domain names or addresses needed for the check (for example the name and the record type) are sent over HTTPS to the resolver you choose, Cloudflare (cloudflare-dns.com) or Google (dns.google), which see them under their own privacy terms and your IP address. openWorkstand never receives them.

Keep working with the result

openWorkstand also includes a free workspace with documents, spreadsheets, tasks, projects and a calendar that save to a folder on your computer.