Table of Contents
- Why Your Emails Go to Spam and How Headers Hold the Clues
- How to Find and View Full Email Headers
- Gmail
- Microsoft Outlook
- Apple Mail
- Decoding Key Header Fields for Deliverability
- Received
- Authentication-Results
- Return-Path and DKIM-Signature
- Message-ID and spam verdict headers
- Connecting Headers to Real-World Deliverability Issues
- What a suspicious pattern looks like
- How to turn a header into action
- A Troubleshooting Workflow From Manual Analysis to Automation
- The manual workflow that works
- Where manual parsing breaks down
- What good automation should do
- Frequently Asked Questions About Email Headers
- Do passed authentication checks guarantee inbox placement
- Which header should be checked first
- Can a team fix deliverability without reading headers
- How should DMARC be rolled out
- Can AI agents check headers automatically
Do not index
Do not index
A campaign goes out on schedule. Replies slow down, demos disappear, password resets don't arrive, and a healthy domain suddenly starts picking up spam placement. Often, the response involves rewriting copy, changing subject lines, or blaming the sending platform.
That usually wastes time.
When an email lands in spam, the fastest useful evidence is in the header. The header records the route, the authentication verdicts, and often the filter decisions that explain why a mailbox provider distrusted the message. For anyone trying to learn how to read email headers, the goal isn't to admire raw metadata. It's to turn that metadata into a diagnosis that protects inbox placement, sender reputation, and revenue.
Table of Contents
Why Your Emails Go to Spam and How Headers Hold the CluesHow to Find and View Full Email HeadersGmailMicrosoft OutlookApple MailDecoding Key Header Fields for DeliverabilityReceivedAuthentication-ResultsReturn-Path and DKIM-SignatureMessage-ID and spam verdict headersConnecting Headers to Real-World Deliverability IssuesWhat a suspicious pattern looks likeHow to turn a header into actionA Troubleshooting Workflow From Manual Analysis to AutomationThe manual workflow that worksWhere manual parsing breaks downWhat good automation should doFrequently Asked Questions About Email HeadersDo passed authentication checks guarantee inbox placementWhich header should be checked firstCan a team fix deliverability without reading headersHow should DMARC be rolled outCan AI agents check headers automatically
Why Your Emails Go to Spam and How Headers Hold the Clues
A message hits the spam folder. The copy looks fine, the links resolve, and the sending platform reports a successful send. The next step is not guesswork. It is the header.
Spam placement starts with a trust decision made by the receiving system. That decision can be driven by failed SPF, broken DKIM alignment, an unexpected relay in the path, a mismatched Return-Path, or a reputation problem attached to the sending domain or IP. The body matters, but it is only part of the evaluation. The header shows the infrastructure and policy checks that shaped the verdict.
Headers work like a flight recorder for the message. They capture where the mail came from, which servers handled it, how the sender identified itself, and what the receiving system concluded about authentication. When I debug a spam complaint, I want the raw header before I want a screenshot of the email. The screenshot shows symptoms. The header shows cause.
That one step avoids a common mistake: changing subject lines and body copy before confirming whether the message was technically trustworthy in the first place. A broken SPF include, a DKIM signature tied to the wrong domain, missing reverse DNS, or a message sent through an unapproved platform will all show up in header evidence long before content edits help.
A clean triage order keeps the work focused:
- Check authentication first. Review SPF, DKIM, and DMARC results.
- Check routing second. Inspect the Received chain for unknown servers, forwarding artifacts, or unusual delays.
- Check identity alignment. Compare the visible From domain with the Return-Path and DKIM signing domain.
- Check filter clues last. Read spam verdict headers if the receiver exposes them.
Manual parsing is still worth learning because it teaches you what mailbox providers evaluate. But manual reading does not scale well across campaigns, inbox providers, and sending tools. The better approach is to turn header review into a repeatable diagnostic workflow, then automate it so the output is not just raw data but specific remediation steps. That is the shift behind this guide, and it is also the problem mailX is built to solve for humans and AI agents. If you need the broader context behind these failure modes, start with this guide on why emails go to spam.
How to Find and View Full Email Headers
Users typically don't see full headers because email clients hide them behind menus. That's fine for normal reading, but it becomes a problem during deliverability debugging. The raw header is needed, not the simplified sender card.
The good news is that header access is standardized across major clients. Gmail, Outlook, and Apple Mail all expose full metadata through built-in options, which makes header analysis practical without third-party software, as documented in Salesforce's guidance on viewing internet headers.

Gmail
In Gmail, full headers are available through More > Show original.
That opens a page with the raw header and a simplified authentication summary near the top. For quick analysis, that summary is helpful, but the primary value is the raw text below it because the full Received chain, DKIM-Signature, Message-ID, and spam-related fields may all be present there.
Use this process:
- Open the message that landed in spam or the test message sent to a seed inbox.
- Click the three-dot menu in the message view.
- Choose Show original.
- Copy the full raw header text.
Microsoft Outlook
Outlook's path is different, but the goal is the same. In desktop Outlook, the usual route is File > Properties, then inspect Internet headers.
A few practical notes matter here:
- Open the message in its own window. The header view is easier to access there.
- Copy the full block. Partial header snippets often omit the oldest Received hops, which are frequently the most useful.
- Keep the original line breaks. Some tools parse better when the raw formatting is preserved.
Apple Mail
Apple Mail exposes headers through the menu system rather than a small properties panel. The standard path is View > Message > All Headers.
That makes Apple Mail useful for quick inspection, especially when checking whether a forwarded or transactional email failed authentication. If the goal is collaborative debugging, it's still better to copy the raw content into a ticket or document so marketing, engineering, and infrastructure teams are looking at the same artifact.
A quick comparison helps:
Client | Where to click | Best use |
Gmail | More > Show original | Fastest for webmail debugging |
Outlook | File > Properties > Internet headers | Useful in enterprise environments |
Apple Mail | View > Message > All Headers | Good for local mailbox inspection |
Decoding Key Header Fields for Deliverability
A raw header can look chaotic. In practice, only a handful of fields solve most deliverability problems. The rest is context.

Received
The Received chain is the mail path. Each server that handles the message adds a line, so the chain must be read from the oldest hop upward when reconstructing the route. This is the primary routing evidence in a spam investigation.
What to look for:
- Unexpected infrastructure. A sending path that includes an unrecognized relay often points to shadow tooling or misrouted mail.
- Timing gaps. Delays between hops can reveal queueing or infrastructure trouble.
- Domain inconsistencies. The originating path should make sense for the sending service in use.
A healthy pattern shows a coherent path from the sender's system to the recipient's MX. A bad pattern includes relays that don't belong, broken handoffs, or a path that doesn't match the visible sending domain.
Authentication-Results
This is the first header most deliverability engineers check. It records the receiving server's verdict on SPF, DKIM, and often DMARC.
According to MailSlurp's header analysis guide, the Authentication-Results header is critical because it explicitly states whether SPF or DKIM passed or failed, and the DKIM-Signature header reveals the selector and domain used for signing. That removes guesswork. The receiving system is telling the sender what it believed.
Use this interpretation model:
Result | What it means | Why it matters |
SPF pass | The sending source is authorized | Supports trust in the sending path |
SPF fail or permerror | The source isn't authorized or SPF is broken | Raises spam risk and can break DMARC |
DKIM pass | The message signature validated | Confirms message integrity and signer domain |
DKIM fail | Signature validation failed | Suggests broken signing, altered content, or bad DNS |
DMARC pass | SPF or DKIM aligned with From domain | Strong identity signal |
DMARC fail | No aligned authentication | A major spam or rejection risk |
For a deeper technical foundation on protocol behavior, it helps to review email security protocols and how they work together.
Return-Path and DKIM-Signature
The Return-Path is where bounces go. It often differs from the visible From address, especially when a third-party platform sends on behalf of a domain. That difference can be normal, but it must still align with DMARC strategy.
A practical example helps:
Header element | Healthy signal | Risky signal |
From | Branded domain visible to recipient | Branded domain that doesn't match any authenticated domain |
Return-Path | Sending domain that matches expected platform setup | Unrecognized domain with no clear relationship to sender |
DKIM-Signature d= | Domain expected to sign mail | Domain that doesn't fit the sender's infrastructure |
If the visible From says one thing and the authentication path says another, mailbox providers notice.
For DKIM, the details matter. The selector in the DKIM-Signature points to the DNS record holding the public key. If the selector is wrong, stale, or missing, DKIM fails. If the message body is altered in transit, DKIM can also fail.
Subject lines sometimes appear encoded inside headers. When that happens, a developer tool for Base64 is useful for decoding header-encoded strings during troubleshooting without editing the original message.
Message-ID and spam verdict headers
The Message-ID is the message's unique identifier. It's extremely useful for correlating provider logs, support tickets, webhook events, and recipient complaints. When a user says, “the reset email never arrived,” Message-ID helps connect the exact message to the delivery trail.
Some environments also expose X-Spam-Score or X-Spam-Status. These can reveal the spam filter's verdict and sometimes why the message was treated as suspicious. They're not universal, but when present, they add useful context beyond authentication.
Connecting Headers to Real-World Deliverability Issues
A header only becomes useful when it leads to a fix. That means taking values from the header and checking the systems behind them.

What a suspicious pattern looks like
Some patterns are stronger than others.
A triple-authentication failure where SPF, DKIM, and DMARC all fail is a high-confidence phishing indicator with an approximately 92% success rate in immediately confirming malicious intent, according to Sendmarc's analysis of email headers. The same source notes that a mismatch between the visible From domain and the originating domain in the Received path is the most common spoofing technique, occurring in 78% of business email compromise attacks.
That matters for deliverability, not just security. Mailbox providers are trying to solve both problems at once. A message that looks spoofed is more likely to be filtered aggressively.
Common red flags include:
- From and Return-Path mismatch. Sometimes valid, often worth verifying.
- Triple fail in Authentication-Results. Strong sign the message isn't trustworthy.
- Unexpected relay in the Received chain. Suggests hidden infrastructure or a compromised route.
- Spam verdict headers showing a high score. Indicates content, reputation, or infrastructure issues compounded.
How to turn a header into action
A methodical workflow turns red flags into remediation steps:
- Pull the originating domain and server path from the header.
- Check whether reverse DNS and domain identity make sense for that sender.
- Verify whether the sending domain's SPF includes every legitimate sender.
- Confirm the DKIM selector used in the message exists and matches the expected domain.
- If delivery still fails, test inbox placement with a controlled seed send such as an inbox placement test.
A short decision table helps during triage:
Header clue | Likely issue | Next action |
SPF fail | Missing authorized sender in SPF | Review all sending services and update SPF |
DKIM fail | Broken signing or DNS mismatch | Check selector and published key |
DMARC fail | Misalignment between From and authenticated domains | Review alignment before tightening policy |
High spam score | Content or reputation issue | Check list hygiene, complaint patterns, and message composition |
A Troubleshooting Workflow From Manual Analysis to Automation
A client sends over a header after a CEO email lands in spam.
SPF passes. DKIM passes. The team assumes the domain is healthy. Twenty minutes later, the actual problem becomes clear. The message was routed through an unexpected relay, DMARC alignment was off, and the IP had no matching PTR record. That is the point where header reading stops being an academic skill and becomes an investigation process.Manual header analysis still matters because it teaches cause and effect. It shows which identity checks passed, which server handled the message, and where the path stopped matching the sender's intended setup. But manual parsing is slow, inconsistent across reviewers, and hard to turn into a repeatable process when a team is managing multiple domains, vendors, transactional systems, outbound campaigns, and AI agents that can send mail faster than a human can audit it.

The manual workflow that works
Start with one affected message and treat it as evidence, not as an anecdote. Use the copy that hit spam, bounced, or never appeared. Pull the full header. Partial text misses the details that matter, especially the full
Received chain and the exact Authentication-Results output generated by the receiving server.Then work through the message in a fixed order:
- Confirm the symptom. Spam placement, hard bounce, soft bounce, deferral, or missing mail each points to a different class of issue.
- Parse
Authentication-Results. Check SPF, DKIM, and DMARC together. A pass on one control does not offset a fail on another.
- Walk the
Receivedchain from bottom to top. The lowest public hop is usually closest to the originating system. Look for relays you do not recognize, private IPs in places they should not appear, and timing gaps between hops.
- Check identity alignment. Compare
From,Return-Path, and the DKIMd=domain. Passing authentication with the wrong domain alignment still causes filtering problems.
- Review provider verdict headers. If the mailbox provider exposes spam scores or internal flags, use them. They often show whether the message was penalized for reputation, content, bulk behavior, or infrastructure.
- Validate the sending environment outside the header. Check DNS records, MX, PTR, SMTP banner, and whether the sending IP and domain belong together operationally.
That workflow catches problems a simple pass or fail check misses. Google's sender guidelines make the trade-off clear. Authentication is expected, but Gmail still routes mail based on spam complaint rates and sender behavior. Google tells senders to keep spam rates in Postmaster Tools below 0.10% and warns that reaching 0.30% or higher can hurt placement, as stated in Google's sender guidelines.
Where manual parsing breaks down
The first limit is time. A deliverability specialist can review a few incidents carefully. They cannot manually normalize every header across marketing mail, product notifications, sales outreach, and support traffic without turning triage into a bottleneck.
The second limit is consistency. Two reviewers can read the same header and prioritize different issues. One stops at DKIM pass. Another notices the sending domain is aligned only on some streams. A third catches that the message originated from a host the security team never approved.
The third limit is automation. Raw headers are noisy input for software. AI agents can send campaigns, trigger transactional flows, and react to CRM events, but they need structured diagnosis, not a wall of text. If the output is just header data, a human still has to interpret it.
What good automation should do
The goal is not to replace header knowledge. The goal is to turn that knowledge into a repeatable diagnostic workflow that software can execute the same way every time.
A useful system should:
- Parse raw headers into structured fields
- Identify the highest-risk issue first instead of listing every field equally
- Correlate header evidence with live checks across SPF, DKIM, DMARC, MX, PTR, DNS, SMTP, and blocklist status
- Explain the operational consequence of each issue
- Return specific remediation steps for the team that owns the fix
- Expose the result through a web app, API, or MCP workflow so humans and AI agents can act on it
That last point is where the workflow changes. A sender does not need another tool that says “DKIM fail” and stops there. They need output like: “Selector
s1 is referenced in the header but missing in DNS. Mail from your transactional platform cannot validate. Publish the key, resend a seed message, and confirm the receiving server reports dkim=pass.” That is the difference between manual interpretation and automated diagnosis.mailX is built around that model. It takes the raw header, parses the message path and authentication results, runs the supporting infrastructure checks, and returns remediation steps that a marketer, engineer, or AI agent can use without translating the header by hand. For teams debugging spam placement across several systems, that saves time. For teams building AI-driven outbound or transactional workflows, it prevents blind sending from domains that are already showing warning signs.
A few guardrails still need human judgment:
- DMARC rollout. Start with p=none, confirm alignment across all legitimate senders, then move to stronger enforcement. Acelle Mail's DMARC guidance outlines the usual progression.
- SPF completeness. One missing sender in SPF can break mail from that provider even when everything else looks correct. Microsoft highlights this failure pattern in its discussion of SPF and DMARC fixes.
- Behavioral metrics. Complaint rate, bounce rate, and list quality still affect placement after authentication is fixed.
The practical model is simple. Read enough headers manually to understand the failure modes. Then codify that process so every incident gets the same checks, the same prioritization, and the same next steps. That is how header analysis becomes an operating workflow instead of a one-off forensic exercise.
Frequently Asked Questions About Email Headers
Do passed authentication checks guarantee inbox placement
No. Passed SPF, DKIM, and DMARC tell mailbox providers the message is authenticated. They don't guarantee the sender has strong reputation or healthy behavior.
Inbox providers also evaluate sender reputation, engagement, list quality, complaints, and content. Bounceproof's analysis of spam placement after authentication notes that authentication can show as PASS while reputation remains Medium or Low and still routes email to spam.
Which header should be checked first
The best first check is Authentication-Results.
It gives the fastest explanation of whether the receiving server trusted the message identity. After that, check the Received chain and then compare From, Return-Path, and DKIM signing domain.
Can a team fix deliverability without reading headers
Usually not with confidence.
Without header analysis, it's hard to separate an infrastructure failure from a reputation issue. That leads to trial-and-error fixes, which often delay recovery and create new problems.
How should DMARC be rolled out
Start cautiously.
The usual progression is p=none for monitoring, then p=quarantine, then p=reject after alignment issues are cleaned up. When DMARC is set to reject, unauthenticated mail is dropped rather than quarantined, as explained in Valimail's overview of DMARC enforcement.
Can AI agents check headers automatically
Yes, but only if they have structured tooling.
Raw headers are hard for agents to interpret reliably. Systems that transform header text into normalized verdicts and remediation steps are far more useful than simple “show original” views. That's especially important for teams running outbound, onboarding, and transactional email inside automated workflows.
Email deliverability issues usually come from authentication, DNS, reputation, blacklist status, or infrastructure signals. Headers expose those signals, but raw header text still requires manual interpretation, which is often difficult to scale.
mailX by Mailwarm is built for that exact gap. It's a free suite of DNS lookup, email deliverability, and network tools for humans and AI agents. Teams can run a full deliverability audit, check SPF, DKIM, DMARC, BIMI, MX, SMTP, IMAP, blacklist status, and domain configuration, then get clear explanations and exact remediation steps instead of raw output. For developers and agent workflows, mailX is API and MCP ready. The fastest next step is to run a live check and see what's hurting inbox placement.
