Mail Check
Audit a domain's mail configuration: MX records, SPF alignment, DKIM selector presence, DMARC policy. Catch common deliverability issues in seconds.
About mail check
Mail deliverability depends on three DNS records: MX (where mail is accepted), SPF (which servers may send on your behalf) and DMARC (what to do when SPF or DKIM fails). Mail check pulls all three plus DKIM (if a selector is known) and shows them together so you can see at a glance whether the domain is correctly configured.
What we check
- MX records with priority, hostname, resolved IP, ASN and organization.
- SPF TXT record. Missing
~allor-allat the end is a common deliverability issue. - DMARC TXT record at
_dmarc.domainwith policy (none,quarantine,reject). - DKIM at
selector._domainkey.domainif you provide a selector (e.g.googlefor Google Workspace,selector1/selector2for Microsoft 365).
How it works
Three DNS based mechanisms work together to decide whether a message that claims to come from your domain is legitimate. Mail check reads the DNS records for each of them and evaluates their content. Only DNS queries are made, no mail server is contacted.
- SPF (Sender Policy Framework) is a TXT record on the domain that lists which servers may send mail for it. The receiving server compares the IP address of the connecting server with that list. SPF checks the envelope sender (the Return-Path domain), not the visible From address.
- DKIM (DomainKeys Identified Mail) adds a cryptographic signature to each message. The signature names a domain and a selector, and the receiver fetches the public key from
selector._domainkey.domainto verify it. Because selectors are free-form, the tool can only find a key if you provide the selector or it is one of the common names that are probed. - DMARC (Domain-based Message Authentication, Reporting and Conformance) is published at
_dmarc.domain. It tells receivers what to do when a message fails authentication and requires that the passing SPF or DKIM result is aligned with the domain in the visible From address.
A message passes DMARC if at least one of SPF or DKIM passes and is aligned. This is why having only SPF or only DKIM is a partial setup: DMARC is what ties the technical checks to the address that users actually see.
What the tool evaluates
- MX records, including detection of a Null MX (a single MX pointing to a dot, which declares that the domain does not accept mail).
- The SPF record, the final
allrule, the number of DNS lookups it causes including nested includes, and warnings about risky constructs. - The DMARC record: policy, subdomain policy, percentage, alignment modes and report addresses.
- DKIM keys for the selector you enter and for a list of common selectors, with key type, approximate key length, revoked keys and test mode.
- Transport and branding records: MTA-STS, TLS-RPT and BIMI.
How to read the results
SPF
An SPF record starts with v=spf1 and then lists mechanisms. Each mechanism can have a qualifier in front of it: + pass (the default if omitted), - fail, ~ softfail and ? neutral.
ip4:andip6:allow an address or range directly and cost no DNS lookup.include:pulls in the SPF policy of another domain, typically a mail provider.aandmxallow the addresses of the domain's A or MX records.redirect=replaces the policy with that of another domain, andexists:performs a DNS existence test.- The final
allmechanism decides the fate of everything not matched earlier.-allrejects,~allmarks as suspicious,?allgives no verdict and+allallows any server in the world and protects nothing.
The standard allows at most 10 DNS lookups per evaluation, counted across all nested records. The mechanisms include, a, mx, exists, redirect and ptr count. Above 10, the result is a permanent error and receivers may ignore the record, so the tool marks more than 10 lookups as an issue and 8 or 9 as close to the limit.
DMARC
p=noneis monitoring only: failing mail is delivered normally and reports are collected.p=quarantineasks receivers to treat failing mail as suspicious, usually by moving it to spam.p=rejectasks receivers to refuse failing mail during delivery.sp=sets the policy for subdomains,pct=the share of failing mail to which the policy applies.adkim=andaspf=select relaxed (r, the default) or strict (s) alignment. Relaxed accepts a subdomain of the same organizational domain, strict requires an exact domain match.rua=is the address for aggregate reports. Without it you cannot see who sends mail in your name.
DKIM
An RSA key of 2048 bits or more is the common recommendation, and shorter keys are flagged. An empty p= value means the key was revoked. The tag t=y marks test mode, in which receivers are asked to ignore failures.
Examples
A domain with only monitoring
Entering example.com returns an SPF record such as v=spf1 include:_spf.example.net ~all and a DMARC record v=DMARC1; p=none; rua=mailto:dmarc@example.com. Interpretation: SPF allows the included provider and softfails everything else, and DMARC only observes. Spoofed mail from this domain is not blocked yet. Use the aggregate reports to confirm that all legitimate senders pass, then move to quarantine and finally reject.
Too many SPF lookups
A record with many include entries, for instance a mail platform, a ticket system, a newsletter tool and a CRM, can reach 11 lookups once their nested includes are counted. The tool reports the count and lists which record contributes how many. The fix is to remove providers that are no longer used, replace a and mx entries with ip4: ranges where addresses are stable, or move some senders to a subdomain with its own SPF record.
A domain that sends no mail
For a parked domain the recommended records are v=spf1 -all, a DMARC record with p=reject and, if it should not receive mail either, a Null MX.
Common problems and how to fix them
- Multiple SPF records: a domain must publish exactly one TXT record starting with
v=spf1. Two records cause a permanent error. Merge them into one. - SPF without an all rule: unknown senders are neither allowed nor blocked. End the record with
~allor-all. - No DMARC record: publish a TXT record at
_dmarc.example.com, starting withv=DMARC1; p=none; rua=mailto:..., and tighten the policy once reports look clean. - DKIM not found: the selector is probably custom. Look at the DKIM-Signature header of a sent message, read the value of
s=and enter it as the selector. - DMARC fails although SPF passes: the SPF result is not aligned. This happens when a third party sends with its own Return-Path domain. Enable DKIM signing with your own domain at that provider.
- Forwarded mail fails SPF: forwarding changes the sending IP. DKIM usually survives forwarding, which is why a valid aligned DKIM signature matters.