sfw/fix
SPF None high

SPF None — No SPF Record Found

No v=spf1 TXT record exists for your domain, so SPF has no policy to evaluate and returns None.

What you see

spf=none (no SPF record found for domain example.com)
Received-SPF: none (example.com: domain does not designate permitted sender hosts)

What’s actually happening

A receiving server looked for a v=spf1 TXT record on your sending domain and found nothing, so SPF returns None — there's no policy to evaluate. Anyone can put your domain in the MAIL FROM and SPF won't object. On its own, None doesn't bounce your mail. The damage shows up under DMARC: a None result can't pass SPF alignment, so DMARC leans entirely on DKIM. If DKIM also misses, DMARC fails and your mail gets quarantined or rejected.

Common causes

  • No TXT record starting with v=spf1 published at the domain apex
  • You send from a new subdomain (mail.example.com) that has its own SPF lookup and no record of its own
  • The SPF record was published under a host like _spf instead of the bare domain, so it never gets queried
  • DNS was migrated to a new provider and the SPF TXT record didn't come across
  • Someone published the record as TYPE16/SPF instead of a plain TXT — most receivers only read TXT

How to fix it

  1. Confirm there's really no recordRun dig TXT example.com +short (or nslookup -type=txt example.com). You're looking for a single line beginning v=spf1. If nothing comes back, there's your None.
  2. Publish one SPF TXT record at the apexAdd a TXT record on the root domain. For Google Workspace: v=spf1 include:_spf.google.com ~all. For Microsoft 365: v=spf1 include:spf.protection.outlook.com -all. List every service that sends as you (ESP, CRM, invoicing) with one include: each, and end with ~all or -all.
  3. Keep it to one SPF record, under 10 DNS lookupsTwo v=spf1 records is a PermError — merge them into one. Each include:, a, mx, and redirect counts toward a hard limit of 10 lookups; blow past it and SPF breaks for a different reason.
  4. Don't rely on SPF alone — set up DKIM tooDMARC passes if either SPF or DKIM passes and aligns. With DKIM signing in place, a forwarded message (which breaks SPF) still authenticates. Turn on DKIM in your mail platform and publish its selector record.
  5. Re-test and check alignmentSend yourself a message and read Authentication-Results in the raw headers. You want spf=pass and the SPF domain to match your From: domain, not just any pass.

Stop it recurring

After any DNS or email-provider migration, re-verify SPF, DKIM, and DMARC with dig before you trust deliverability.

Related errors