splitforms.com
Free tool · no signup

SPF checker

Enter a domain to fetch its published SPF record, break down every include and mechanism, and see whether you are within the 10 DNS lookup limit before receivers fail authentication for your form or marketing mail.

How receivers check SPF

When mail arrives, the receiving server reads the domain in the SMTP MAIL FROM envelope (and often aligns it with the visible From header under DMARC). It looks up a TXT record on that domain that starts with v=spf1, then walks each mechanism in order. Matching ip4, ip6, or a passing include: means SPF passes for that hop. The final all mechanism sets the default for everyone else.

A soft fail (~all) usually still delivers the message but may add a spam score. A hard fail (-all) tells strict receivers to reject mail from unlisted servers. Neutral ?all and permissive +all give weak or dangerous signals — fix those before you rely on SPF for production sends.

Why SPF alone is not enough

SPF breaks easily when messages are forwarded, and it only validates the envelope domain unless DMARC alignment ties it to your From address. Add DKIM so receivers can verify a cryptographic signature on each message, and publish DMARC so you get reports and a clear policy when SPF or DKIM fails. The email deliverability checker shows all three DNS pieces in one pass.

If you send contact-form notifications, list every outbound service in SPF with the SPF record generator, then confirm the live record here. Send From an address on your own domain, put the visitor in Reply-To, and route submissions through a backend built for deliverability — see form-to-email on splitforms for the pattern we recommend.

FAQ

What does ~all vs -all mean?

~all (soft fail) tells receivers to accept mail from servers not in your record but treat it as suspicious. -all (hard fail) tells them to reject it. Use ~all while you verify every sender, then move to -all when the list is complete.

What is the SPF 10 DNS lookup limit?

While checking SPF, a receiver may perform at most 10 DNS lookups. Each include:, a, mx, exists and redirect= in your record counts, and lookups inside included records count too. Over the limit, SPF returns permerror and fails. This tool estimates lookups from top-level terms only.

Can I have two SPF records?

No. Publish exactly one TXT record starting with v=spf1 on your root domain. Two SPF records make SPF invalid and receivers treat it as a fail. Merge every include and IP into a single record instead of adding another.

Do I need SPF for my contact form emails?

Yes, if notifications are sent From an address on your domain. SPF tells inboxes which servers may send as you. Use your domain in the From address with SPF, DKIM and DMARC in place, and put the visitor's address in Reply-To so you are not forging Gmail or Yahoo in From.

All free form tools · SPF record generator · Why form emails go to spam

More free form tools

Form backend cost calculator

Enter monthly submissions and compare the cheapest listed plan across eight form backends.

Email deliverability checker

Enter a domain to check its SPF, DMARC and MX records and get a plain-English fix for each.

DMARC record generator

Pick a policy and report address and copy a ready _dmarc TXT record.

DMARC checker

Look up a domain's DMARC record and see the policy and every tag explained.

DKIM record checker

Enter a domain and selector to check its DKIM key, with presets for common senders.

SPF record generator

Tick your email providers and copy one SPF TXT record with a lookup count.

Contact form spam checker

Paste form HTML to audit its honeypot, endpoint, CAPTCHA markers and spam resistance.

Honeypot field generator

Generate a hidden anti-spam input with your chosen name and hiding technique.

Form action URL tester

Check a form action URL for reachability, CORS headers, POST acceptance and backend.

Email obfuscator

Encode your email so spam scrapers can't read it but people can still click it.

Mailto link generator

Build a mailto: URL with recipients, CC, BCC, subject and a pre-filled body.

Alphanumeric regex tester

Test letters and numbers only, spaces, handles and Unicode; copy validation patterns.

Email regex tester

Test the WHATWG email regex and two other patterns against edge cases and your own list.

Phone number regex tester

Test numbers against E.164, US/Canada and digits-only patterns and copy code snippets.

ZIP code regex tester

Test US ZIP, ZIP+4, Canadian and UK postal codes and copy the regex or HTML pattern.

Number regex tester

Test digits, decimals, money and thousands separators and copy validation patterns.

Date regex tester

Test dd/mm/yyyy, mm/dd/yyyy and ISO dates with leap-year checks and copy JS or HTML patterns.

Name regex tester

Test name patterns for O'Brien, accents and Unicode letters; copy JS or HTML pattern snippets.

Username regex tester

Test username presets for GitHub, Instagram and X; check reserved names and copy JS or HTML patterns.

IP address regex tester

Test IPv4, IPv6, CIDR and private-range patterns and copy JS or HTML pattern snippets.

URL regex tester

Test website URLs against http(s) regex patterns and new URL(), and copy JS, HTML or PHP code.

HMAC-SHA256 generator

Generate and verify webhook signatures for common providers in your browser.

URL encoder and decoder

Encode text, build an x-www-form-urlencoded body or parse a query string.

Password regex generator

Pick strength rules, test passwords live and copy the regex or HTML pattern.

UTM builder

Build campaign URLs with UTM parameters, tag a CSV in bulk and check tagged links.

HTML to JSX converter

Paste HTML and get JSX or a working React/Next.js form component.

Image to Base64 converter

Convert images to Base64 data URLs in your browser and copy HTML and CSS snippets.

Base64 to image converter

Paste a Base64 data URI to preview and download the decoded image.

Base64 decode & encode

Decode Base64 to readable UTF-8 text or encode text to Base64, locally in your browser.

URL to Base64 converter

Fetch a direct image URL in your browser and get its Base64 data URL.

HTML form generator

Build a form visually and copy HTML, React JSX or Tailwind code.

AI form generator

Describe your form in plain English and copy working HTML.

Time regex tester

Test 24-hour, AM/PM and ISO time patterns and copy JavaScript, Python or HTML snippets.

Credit card regex tester

Test Visa, Mastercard 2-series, Amex and more card patterns with brand detection and a Luhn check.

Hex color regex tester

Test #RGB, #RRGGBB and alpha hex colors plus rgb() and hsl() values with live color swatches.

UUID regex tester

Test UUID v1-v8, nil/max and GUID formats with version and variant checks; copy JS or HTML patterns.

Terms explained in the form glossary: SPF, DMARC, DKIM

See all free tools