SPF Record Generator
🔒 In your browserBuild a valid SPF record with provider presets and a live lookup counter.
How it works
Build a valid SPF record for your domain — the DNS TXT record listing which servers may send email as you. Pick your providers, add any of your own sending IPs, choose how strict to be, then publish the result as a TXT record at your domain root.
v=spf1 a mx ~all
Publish exactly one SPF record per domain — multiple records make SPF fail entirely.
🔒 Runs in your browser: records, keys and headers are processed locally and never uploaded — including DKIM private keys, which never leave this device.
About the SPF Record Generator
This free SPF record generator builds a valid SPF record for your domain. Click the providers you send through — Google Workspace, Microsoft 365, SendGrid, Mailchimp and more — add any of your own sending IPs, choose how strictly to treat everyone else, and copy the finished record straight into DNS.
A live counter keeps you under SPF's hard limit of 10 DNS lookups, which is the most common way SPF records break.
How to publish it
- Create a TXT record at your domain root (the host is @ or blank).
- Paste the generated record as the value.
- Publish exactly one SPF record — a second one makes SPF fail entirely.
- Wait for DNS to propagate, then verify with the SPF Checker.
Watch the 10-lookup limit
SPF allows a maximum of ten DNS lookups when it is evaluated, and every include: for a provider counts toward that limit. Build your record from the sender presets here, then pair it with the SPF checker, which counts your lookups so you can stay under ten and avoid a permerror that would fail authentication.
Frequently asked questions
Where do I put the SPF record?
As a TXT record at your domain root — host @ or blank, depending on your DNS provider. Not at a subdomain unless that subdomain sends mail.
What if I use several email providers?
Add an include: for each one. Watch the lookup counter: each include costs one of your ten, and nested includes count too.
Should I start with ~all or -all?
Start with ~all so unlisted senders are marked rather than rejected, confirm nothing legitimate is failing, then switch to -all.
Is my configuration uploaded?
No. The record is built entirely in your browser.
Related searches
Learn more
Related Email tools
🔗 Embed this tool on your website — free
Copy this and paste it into your page's HTML. The tool runs in the visitor's browser, just like here. Change height to fit, or add the optional auto-resize snippet below. Add ?theme=dark to the URL for dark mode.
<iframe src="https://toolhq.dev/embed/spf-record-generator/" title="SPF Record Generator — ToolsHub" width="100%" height="520" style="border:1px solid #e5e7eb;border-radius:12px;max-width:680px" loading="lazy"></iframe>Optional: auto-resize the iframe height
Add this once on the same page so the iframe grows to fit the tool:
<script>
addEventListener("message", function (e) {
if (e.data && e.data.type === "toolshub:resize") {
document.querySelectorAll('iframe[src*="/embed/"]').forEach(function (f) {
if (f.contentWindow === e.source) f.style.height = e.data.height + "px";
});
}
});
</script>