Skip to content
Runs in your browser · nothing is sent to us

An SPF record, and a real count of what it costs you.

Pick the services you send with. The record assembles as you go, and the counter shows what each include costs — including the lookups inside it, which is where most records quietly go over the limit.

Services you send with
Your own servers

Literal addresses cost no lookups at all, which is why they are the way out of a crowded record.

What happens to everyone else
Your record

v=spf1 mx include:_spf.google.com ~all

Publish as a TXT record at your domain root. One SPF record per domain — if you already have one, merge into it instead of adding a second.

DNS lookups, of 10
4–5lookups

Within the limit. The range is a range because published figures for the same include disagree — a live resolution is the only authoritative count.

Where every lookup goes
mxResolves the domain’s MX hosts.1
include:_spf.google.comGoogle Workspace. Sources disagree — 3 to 4 lookups.3–4
~allA qualifier, not a mechanism. Costs nothing.0
01 — Why the count is a range

Most generators count one lookup per include. That is not how it works.

An include: pulls in the other domain’s whole record, and its includes count against your ten as well. Google Workspace alone is three or four; Salesforce is three. A record with both is already six or seven before you have added your own servers.

The figures are a range because published sources disagree, and because vendors change their own records without announcing it. A generator that shows one confident number is guessing at your expense — the only authoritative count is a live resolution of the record as published.

02 — If you are over

Four ways out, in the order worth trying.

Over ten lookups, receivers return PermError and SPF fails — for every message, including the legitimate ones. It is not a warning state.

01

Delete what you no longer use

The commonest cause of a bloated record is a service you stopped paying for two years ago. Aggregate reports tell you which includes are still carrying real mail.

Free, and reversible
02

Split streams across subdomains

Send marketing from news.example.com and billing from billing.example.com. Each subdomain gets its own record and its own budget of ten.

Best long-term fix
03

Replace an include with its IPs

If a vendor publishes a stable, documented set of addresses, listing them as ip4: costs zero lookups. Only for vendors who commit to their ranges.

Breaks silently if they renumber
04

Flattening services

These resolve your includes and republish the result as literal IPs, refreshed for you. It works, and it makes your mail delivery depend on a third party keeping their record current. DDMARC's own is on Professional: a flattened record hosted by us, kept inside the ten-lookup limit as your providers change theirs.

Trades one risk for another
03 — FAQ

Frequently asked questions.

SPF allows a maximum of 10 DNS lookups across the whole record, including every lookup inside a nested include: entry. Exceeding the limit returns a PermError, and receivers treat the record as if no SPF existed at all, for every message.

For the full walkthrough, see the SPF setup guide.

SPF is one of three, and the weakest alone.

SPF authorizes servers. It says nothing about the From: address a recipient reads — that is DMARC’s job, and it is the record that makes SPF worth having. Once it asks for reports, Monitor reads them for 2 domains at no charge and shows which senders fail.

Free plan: 2 domains, no card, no expiry · Trial: card required, billed on day 15 unless you cancel · 14-day money-back on new paid plans