How to Diagnose Email Deliverability Problems

A systematic approach to finding why your emails are going to spam or getting rejected.

Start with the bounce or spam report

The fastest path to a diagnosis is the delivery status notification (DSN) or the full message headers from a message that landed in spam. Both contain machine-readable clues about exactly what failed.

A bounce message (NDR) includes an SMTP status code. The most important ones for authentication failures are:

For messages that arrived but went to spam, open the full headers. Look for three fields injected by the receiving server:

A typical Authentication-Results header might read: spf=pass; dkim=fail (signature did not verify); dmarc=fail (p=reject). That tells you SPF passed but DKIM verification failed, causing DMARC to fail and the policy to be applied.

Check SPF first

SPF is the simplest mechanism to break and the most common culprit in deliverability incidents. Start here.

Query the TXT records on your root domain and look for the v=spf1 record. Common failure modes:

To verify your SPF record, query: example.com TXT and check that exactly one record starts with v=spf1.

Verify DKIM signing

DKIM failures are often invisible until DMARC is enforced, because many receivers accept DKIM-unsigned mail if SPF passes. Once you move DMARC to p=reject, a DKIM gap surfaces immediately.

To check DKIM, you need the selector your sending provider is using. Find it in the DKIM-Signature: header of a sent message — look for the s= tag. Then query the public key: <selector>._domainkey.example.com TXT.

If the DNS query returns NXDOMAIN, the key was never published or has been removed. If it returns a record but DKIM is still failing, check:

Inspect your DMARC policy

DMARC is the enforcement layer that ties SPF and DKIM together. A DMARC record at _dmarc.example.com with p=none is monitoring-only: it generates aggregate reports but does not protect your domain. Many organizations deploy DMARC and forget to graduate past p=none.

The two most common DMARC alignment failures are:

Read your aggregate reports (rua destination) to identify which sources are failing alignment. Tools that parse DMARC XML reports are available, but the raw structure is readable: look for <source_ip>, <count>, and <disposition>.

Check MTA-STS

MTA-STS does not affect whether your outbound mail is delivered, but it affects inbound delivery security and can cause receiving failures if misconfigured. If you publish an MTA-STS policy in enforce mode, sending MTAs must be able to establish a TLS connection with a valid certificate matching your MX hostnames. If your MX server's certificate is expired or mismatched, legitimate mail will be deferred or bounced by senders that honor MTA-STS.

Check: _mta-sts.example.com TXT for the policy record, then fetch https://mta-sts.example.com/.well-known/mta-sts.txt to confirm the policy file is reachable and the MX hostnames listed match your actual MX records.

IP reputation

Authentication passing does not guarantee deliverability if your sending IP has a poor reputation. Blacklisting is a separate layer from SPF/DKIM/DMARC.

Key things to check:

Common causes and fixes

SymptomLikely causeFix
550 5.7.26 from GmailDMARC reject, no DKIM alignmentConfigure DKIM signing with your domain's key on your ESP
SPF permerrorMultiple SPF records or >10 lookupsMerge records; use ip4:/ip6: mechanisms or SPF flattening
Goes to spam despite SPF passDMARC p=none, IP reputation, or contentCheck DMARC aggregate reports; verify IP against DNSBLs
DKIM fail after signing enabledBody modified post-signatureDisable footer injection at the gateway, or sign after footer
Inbound mail deferredMTA-STS enforce with expired certRenew TLS cert on MX server; temporarily lower to testing mode

How to check everything at once

Rather than querying each record individually, use the +check mode in the DNS inspector to run a full email authentication audit in one step. It queries SPF, DKIM (common selectors), DMARC, MX, MTA-STS, TLSRPT, and BIMI in parallel and applies lint rules to each result — flagging issues like the 10-lookup limit, missing alignment identifiers, and policy mode regressions.

Check your domain's email deliverability

Runs SPF, DKIM, DMARC, MTA-STS, TLSRPT, and BIMI checks on your domain in a single pass.

Check your domain's email authentication with beacon