Email domain health check: SPF, DKIM and DMARC
Type a domain and this check reads its DNS the way receiving mail servers do: SPF and its 10-lookup limit, a published DKIM key, the DMARC policy, who handles the mail and the domain's age. Each problem comes with the record that fixes it. Sealrep runs the same check on every mailbox you connect.
By Naman Jain, founder of SealrepPublished 18 October 2026Last reviewed 12 October 2026
We review every request. Free trial once you're in, no card.
Check a sending domain. See what receivers see.
Nothing you type is stored for long: a domain's answer is cached for 10 minutes, then dropped. To stop abuse we keep coded counts (keyed hashes, never your address or the domain) of checks from your network for up to a day and of checks of each domain for an hour, and a total for the day. The check looks the domain up in public DNS and in its registry (RDAP). After you change a record, check again in 10 minutes; DNS changes can take longer than that to reach every server.
SPF: who may send as you, in 10 lookups or fewer.
SPF is one TXT record at your domain, starting v=spf1, that lists the servers allowed to send mail as you. Every include, a, mx, ptr, exists and redirect in it makes the receiver look up another DNS name, and includes can hold includes of their own. RFC 7208 caps the total at 10, and a record that needs more is a permanent error, which receivers treat as a failure.[1]
This check walks every include the way a receiver does and counts them. It also flags two SPF records on one domain (a permanent error too), more than two includes that point at names that answer nothing (the void lookup limit), and a record ending in +all or ?all, which lets any server send as you.[1] When your mail runs on Google, Microsoft, Zoho or Fastmail, it also checks that SPF lists that provider.
The usual fix for too many lookups is to remove services you no longer send from. Agencies collect them: an old newsletter tool, a CRM you left, a help desk that sends as you.
DKIM: a key receivers can check, and why only a real email proves it.
DKIM signs each email with a private key. The public half sits in DNS at a name like selector._domainkey.yourdomain.com, where the selector is a label your provider picks, so a checker has to guess it unless you tell it.[2] This check tries the selectors Google Workspace, Microsoft 365, Zoho and Fastmail use, a few common ones, and any selector you type in the DKIM selector box.
A record with an empty p= means the key was revoked.[2] A published key also does not prove your provider signs with it. To be sure, send yourself a test email and look in its headers for dkim=pass next to your own domain.
DMARC: your policy, and p=none counts.
DMARC is a TXT record at _dmarc.yourdomain.com that tells receivers what to do with mail that fails SPF and DKIM for your domain, and where to send reports. Gmail requires senders of 5,000 or more messages a day to its users to publish one, and says the policy can be none.[3]
When a subdomain has no record of its own, the check walks up the name, so mail.acme.co.uk finds the record at _dmarc.acme.co.uk. That is the DNS tree walk of RFC 9989, which replaced the public suffix list as the way to find a domain's DMARC record.[4] Moving from p=none to p=quarantine or p=reject is a later step for once the reports show all your real mail passing.
Three more things receivers notice.
- MX: who receives mail for the domain. With no MX record, replies to your campaign have nowhere to go.
- The address: a gmail.com or outlook.com address is fine for a few emails, not for campaigns, because you cannot publish SPF, DKIM or DMARC on a domain you do not own. Microsoft limits mail from the default onmicrosoft.com addresses to 100 external recipients a day for the whole organisation.[5]
- Domain age: read from the registry over RDAP. Under 30 days old reads as weak, because mail providers distrust brand new domains, and Gmail asks senders to start with a low volume and increase it slowly.[3] Some country registries do not publish registration dates, so the age can say unknown.
Would a Sealrep campaign start?
Sealrep does not start a campaign from a domain whose SPF or DKIM is missing, or whose SPF is in permanent error. That is the line under your result. The other chips are warnings: a campaign can start, and they stay on the mailbox page until you fix them. A lookup that timed out never blocks a campaign, so the line waits until every DNS check has answered.
Fixing DNS happens where your domain's DNS is hosted, usually the company you bought the domain from. Sealrep checks the records and shows the exact one to add; it does not change your DNS, and it does not sell or warm mailboxes. It sends from mailboxes you already own: any mailbox over SMTP and IMAP today, with Google and Microsoft sign-in coming soon.
A domain that passes, and one that would not start a campaign.
Example data: two made-up domains (.example is kept for examples) with made-up DNS records, run through the real check on 2 October 2026.
- SPFOK
Lists Google (3 of 10 lookups).
- DKIMOK
Key published (selector google). A test email is the only way to confirm your provider signs with it.
- DMARCOK
p=none: meets the Gmail, Yahoo and Microsoft rule. Moving to p=quarantine is an optional later step.
- MXOK
Mail is handled by Google.
- AddressOK
An address on your own domain.
- Domain ageOK
Registered 14 Mar 2024.
A Sealrep campaign would start from this domain.
- SPFWeak
SPF needs 11 DNS lookups. Receivers stop at 10 and then fail it.
fixRemove services you no longer send from, or flatten the record, to get from 11 to 10 lookups or fewer.
- DKIMMissing
No DKIM key found.
fixTurn on DKIM in the Google Admin console (Apps, Gmail, Authenticate email) and publish the google._domainkey TXT record.
- DMARCMissing
No DMARC record.
fixAdd a TXT record at _dmarc.brightpath-growth.example: v=DMARC1; p=none; rua=mailto:dmarc@brightpath-growth.example
- MXOK
Mail is handled by Google.
- AddressOK
An address on your own domain.
- Domain ageWeak
Registered 12 days ago. Mail providers distrust brand new domains.
fixKeep the volume low for its first month. The ramp starts at 5 emails a day.
A Sealrep campaign would not start from this domain yet: SPF in permanent error and DKIM missing.
Where every fact comes from. Read on 2 October 2026.
- [1]RFC 7208, Sender Policy Framework (SPF) sections 4.5 and 4.6.4: two records, the 10 lookups and the 2 void lookups.
- [2]RFC 6376, DomainKeys Identified Mail (DKIM) Signatures sections 3.1, 3.6.1 and 3.6.2.1: selectors, the p= tag, the _domainkey name.
- [3]Gmail Help, Email sender guidelines SPF, DKIM and DMARC for 5,000 or more messages a day; "Increase sending volume slowly".
- [4]RFC 9989, Domain-based Message Authentication, Reporting, and Conformance (DMARC) the DNS tree walk.
- [5]Microsoft Learn, Exchange Online limits "Limiting Onmicrosoft Domain Usage for Sending Emails".
Spot a mistake? Email hi@sealrep.com and we will correct it within 5 business days.
Questions people ask. Answered straight.
is this SPF, DKIM and DMARC checker free?
Yes. No account and no email address. It runs Sealrep's own DNS check, with no AI and no credits. One visitor can run 10 checks a minute and 60 a day.
why does it say DKIM is missing when my provider signs my mail?
It looks for your key at the selectors providers usually use. If yours uses another name, find it in your provider's DKIM settings, or in the s= value of the DKIM-Signature header of an email you sent, and type it in the DKIM selector box.
does p=none hurt my deliverability?
Gmail accepts p=none for bulk senders.[3] It tells receivers you publish DMARC and lets you read the reports before you choose a stricter policy.
how soon will the check see a record I just added?
An answer is reused for 10 minutes, and a DNS change can take longer than that to reach every server, depending on the record's TTL. Check again after both.
do you keep the domains I check?
Not for long. An answer is cached for 10 minutes so a second check of the same domain is instant, then it is dropped. To stop abuse we keep coded counts of checks per network (up to a day) and per domain (an hour), never the domain or your address in plain text, and a total for the day.
can Sealrep add these records for me?
No. You add them where your DNS is hosted; the check shows the exact record. Inside Sealrep, the same check runs when you connect a mailbox and again every week, and a campaign cannot start while it finds SPF or DKIM missing.
Sealrep runs these checks on every draft and mailbox.
We review every request. Free trial once you're in, no card.
We review every requestFree trial, no card
- Nothing sent until you approve
- Domain checked before a campaign starts
- You send on LinkedIn, X and Reddit
Lab only · stands in for the hero and the sections after it; the pill appears once the hero buttons have gone
Get paying clients, not just leads.
Sealrep finds your buyers, drafts your cold email, LinkedIn, X and Reddit outreach, sorts every reply, and offers your booking link.
We review every requestFree trial, no card
- Cold emailResearched emails from your own mailbox, after you approve.
- LinkedInNotes and comments drafted for you to send.
- XReplies and DMs drafted for you to send.
- RedditFinds the threads your buyers are in. You post; it drafts.
- AI searchTracks how AI engines answer about you.
- Reply agentReads every reply, sorts it, and drafts the answer.
- Lead dataNamed companies with the reason they fit.
- Your mailboxesDomain checked, ramped slowly, paused on bounces.
- Browser extensionReads the page when you click, drafts what to say.