What are email headers?

Every email carries a set of hidden metadata fields called headers. They are written by every mail server the message passes through and record the full journey from sender to recipient. Most email clients hide them by default β€” you usually only see From, To, Subject, and Date β€” but the raw headers contain significantly more information.

Headers are written in RFC 5322 format: one field per line, starting with the field name followed by a colon and the value. Multi-line values are continued with leading whitespace (folding). The most recent header is at the top; older ones are below.

Received: from mail.example.com (203.0.113.42)
         by mx.recipient.org with ESMTPS
         for <user@recipient.org>; Thu, 1 May 2026 09:12:34 +0000
Authentication-Results: mx.recipient.org;
                       spf=pass smtp.mailfrom=example.com;
                       dkim=pass header.d=example.com;
                       dmarc=pass header.from=example.com
From: Alice <alice@example.com>
To: Bob <bob@recipient.org>
Subject: Hello
Date: Thu, 1 May 2026 09:12:30 +0000
Message-ID: <unique-id@example.com>

Each Received: header is added by one mail server handing the message to the next. Reading them from bottom to top gives you the complete delivery path.

What this tool does differently

Most header analyzers display the raw header values in a table or parse them into a flat list. This tool goes further: it resolves live DNS records, traces authentication chains, and decodes proprietary Microsoft 365 headers to explain not just what happened but why β€” and where exactly something went wrong.

SPF

SPF record visualization

The tool fetches the sender domain's live SPF record and renders each mechanism as a color-coded token. The exact mechanism that matched the sending IP address β€” whether a direct ip4:, an a: record, or a nested include: β€” is highlighted in the record so you can see at a glance why SPF passed or which rule caused it to fail.

SPF

Include chain traversal

When the matching mechanism is an include: directive the tool follows the chain recursively, resolving each referenced domain's SPF record in turn until it reaches the leaf mechanism that matched. The full include path is displayed (e.g. include:spf.protection.outlook.com β†’ ip4:40.92.0.0/15), so you can confirm exactly which IP range authorized the sender.

DMARC

Alignment breakdown

When DMARC fails, the tool shows an alignment table: the From: header domain is compared against the DKIM signing domain (d=) and the SPF envelope-from domain. Each pair is labelled aligned or not aligned, so you can see immediately whether the failure is a DKIM alignment issue, an SPF alignment issue, or both. Remediation hints (e.g. configure a custom Return-Path CNAME) are shown inline.

DKIM

Public key live lookup

For each DKIM-Signature: header the tool resolves selector._domainkey.domain in real time to check whether the public key still exists in DNS, has been revoked (empty p=), or was never published. If the current DNS state differs from the delivery-time result the tool flags the discrepancy β€” useful for diagnosing whether DKIM failed because of a signing error or a key rotation that happened after delivery.

ARC

Independent ARC chain results

ARC (Authenticated Received Chain) allows intermediate mail handlers β€” mailing lists, forwarding services β€” to preserve the original authentication results after they modify a message. The tool displays the full ARC chain as a visual sequence of nodes (i=1, i=2, …), each showing the chain-validation value (cv=none/pass/fail) and the independent SPF/DKIM/DMARC results recorded at that hop β€” separate from the final delivery authentication.

M365

Exchange Online header analysis

Microsoft 365 adds several proprietary headers that most analyzers ignore. This tool decodes X-Forefront-Antispam-Report, X-Microsoft-Antispam, and X-MS-Exchange-Organization-* to show: whether Exchange classified the message as internal or external (AuthAs), the Spam Confidence Level (SCL) and Bulk Complaint Level (BCL) with their meanings, the spam filter verdict (SFV), and the message category (CAT). It also detects hybrid on-premises scenarios from the FromEntityHeader value.

Flow

Mail flow hop diagram

The delivery path is rendered as an interactive diagram showing each hop: the sending and receiving hostnames, IP addresses, timestamps, and delay between hops. IP addresses are classified as internal (RFC 1918 / link-local), Microsoft 365 infrastructure, or external. DNS resolution fills in missing IP addresses for hostnames that appear without one.

M365

Hybrid org detection

When a message arrives from an on-premises Exchange server through a Microsoft 365 hybrid connector, Exchange Online can misclassify it as anonymous (external) even though it originates internally. The tool detects this pattern β€” AuthAs=Anonymous combined with FromEntityHeader=HybridOnPrem β€” and shows a warning with the likely causes and the impact on mail flow policies.

TLS

Transport encryption per hop

Every Received: header names the protocol and often the TLS version and cipher of that transfer (Postfix, Exim, sendmail, Google and Microsoft formats, plus the RFC 3848 keywords ESMTPS and ESMTPSA). The tool shows a padlock per hop in the flow diagram and the routing timeline, sums up the encryption in one line and warns about unencrypted transfers between organizations and about TLS 1.0/1.1, which RFC 8996 deprecates. Hops that hand the message back to a server already shown (a gateway re-injecting via localhost) appear as a badge on that server.

FWD

Forwarding detection and SRS

Mailbox forwarding and inbox rules in Microsoft 365, Gmail forwarding filters, Resent-* headers, Delivered-To chains and SRS-rewritten Return-Paths (standard SRS0= and the Microsoft 365 +SRS= format) are recognized and the original sender is decoded. The validation explains why SPF fails on forwarded mail while DKIM and ARC still carry the original authentication, and it stops treating the From/Return-Path mismatch as a warning when SRS explains it.

M365

Mailbox delivery in Exchange Online

X-Microsoft-Antispam-Mailbox-Delivery is stamped when Exchange Online files the message into a mailbox. The Exchange section shows the destination folder code (Inbox, Junk or a custom folder, meaning derived from observation), the override reason and the Network Message ID that Microsoft Defender for Office 365 uses in Explorer and Advanced Hunting.

VERDICT

Overall verdict and validation

The card at the top condenses authentication, transport and the validation findings into one state and offers a plain-text summary for tickets and chats. Findings come in three severities: failures, warnings and informational notes. Checks include lookalike and homograph domains (including Punycode), freemail Reply-To addresses on corporate senders, Date headers that deviate from the first Received timestamp, headers that belong to an inline-forwarded copy rather than the original message, and SPF failures on an intermediate hop that are healed again by the time the message is delivered (relaying and forwarding). That note keeps the overall verdict from reading β€œNo findings” while the report further down shows a failed SPF hop.

SPF

SPF record health

Beyond matching the sending IP, the SPF record is audited: DNS lookups across all includes and redirects against the limit of 10 (RFC 7208 Β§4.6.4), includes without a record (void lookups), +all and ?all, the discouraged ptr mechanism, multiple records and the record length. The summary line sits under the record header, details open with the record.

BULK

Bulk sender requirements

For list and newsletter mail the tool checks the requirements that Google and Yahoo publish for bulk senders: SPF and DKIM, a published DMARC record and an aligned From domain, one-click unsubscribe per RFC 8058, reverse DNS that resolves back to the sending IP, TLS on delivery and a Message-ID.

GATEWAY

Security gateway analysis

Mail security products leave their verdicts in the headers. The tool reads SpamAssassin (X-Spam-Status, X-Spam-Report with per-rule scores), Rspamd (X-Spamd-Result symbols and the action), Proofpoint spam details and anti-virus, Mimecast spam score and impersonation protection checks, Barracuda status and report, and the Cisco Secure Email (IronPort) anti-virus and ThreatScanner verdict. Vendors without a documented format, such as Hornetsecurity, NoSpamProxy, Retarus, Trend Micro, Sophos, Kaspersky, ESET and Amavis, are listed with their raw headers.

A/B

Compare two messages

Load a second message next to the first one and the tool shows the facts side by side: authentication results, hops and transit time, TLS, Exchange verdicts (SCL, CAT, SFV), delivery folder, forwarding and gateway verdicts, with differences highlighted and the findings that exist in only one message. Typical use: a delivered versus a quarantined copy, or a message before and after a connector or rule change. Either message can be shown in full detail below.

LINK

Share an analysis as a link

"Share link" in the summary heading builds a URL that carries the message text itself, compressed, in the fragment after the # sign (#share=z.<base64url of deflate-compressed UTF-8>). Browsers never send the fragment to the server and the tool stores nothing, so the privacy promise holds: whoever has the link can open the analysis, nobody else. By default only the headers are included, which keeps the link short enough for chats and tickets; the body can be added when needed. Other tools can build such links themselves, for example a shortcut that shares the clipboard.

Standard header field reference

The most common fields you will encounter in email headers:

Header What it contains
Received: Added by each mail server in the delivery path. Reading bottom-to-top gives the route. Contains sending host, receiving host, protocol, and timestamp.
Authentication-Results: Summary of SPF, DKIM, and DMARC checks performed by the receiving server. The authoritative source for authentication pass/fail results.
DKIM-Signature: Cryptographic signature over selected headers and the message body. Contains the signing domain (d=), selector (s=), algorithm (a=), and signed header list (h=).
ARC-Seal: Part of the ARC set. Seals the ARC headers added at a given hop (i=) and carries the chain validation value (cv=).
ARC-Message-Signature: Like a DKIM signature added by the intermediate handler, covering the message at the point of forwarding.
ARC-Authentication-Results: Snapshot of authentication results (SPF, DKIM, DMARC) as seen by the intermediate handler before it modified or forwarded the message.
Return-Path: The envelope sender (SMTP MAIL FROM) address. Used for SPF checking and bounce handling. May differ from the visible From: address.
Message-ID: Globally unique identifier assigned by the originating server. Used for threading and tracing a specific message in logs.
X-Originating-IP: IP address of the client that submitted the message to the first mail server. Useful for tracing the true origin of webmail-sent messages.
X-Forefront-Antispam-Report: Microsoft 365 proprietary header. Contains the spam filter verdict (SFV), spam confidence level (SCL), category (CAT), client IP (CIP), country (CTRY), and several other filtering signals.
X-Microsoft-Antispam: Microsoft 365 proprietary header. Contains the Bulk Complaint Level (BCL), used to classify bulk/newsletter mail separately from spam.
X-MS-Exchange-Organization-SCL: The Spam Confidence Level as set or overridden by Exchange Online transport rules. Values range from -1 (bypass) to 9 (definite spam).
X-MS-Exchange-Organization-AuthAs: Whether Exchange classified the sender as Internal or Anonymous (external). Used by mail flow rules to apply different policies to internal vs. external mail.

SPF, DKIM, DMARC β€” quick reference

SPF (Sender Policy Framework)

SPF lets a domain owner publish, in DNS, which mail servers are authorized to send mail on behalf of that domain. The receiving server checks the sending IP against the TXT record at the domain used in the SMTP MAIL FROM command (the envelope sender). Common mechanisms:

SPF alignment for DMARC: the envelope-from domain (checked by SPF) must match the From: header domain at the organizational level. Many ESPs send with their own return-path domain by default, breaking SPF alignment unless you configure a custom Return-Path CNAME.

DKIM (DomainKeys Identified Mail)

DKIM provides a cryptographic signature over the message. The sending server signs selected headers and the body with a private key, and publishes the public key in DNS at selector._domainkey.domain. Receiving servers verify the signature. DKIM survives relaying and forwarding (as long as the signed headers and body are not modified), unlike SPF which is tied to the sending IP.

DKIM alignment for DMARC: the signing domain (d= tag) must match the From: header domain at the organizational level. If your ESP signs with their own domain, DKIM alignment will fail even if the signature is cryptographically valid.

DMARC (Domain-based Message Authentication, Reporting & Conformance)

DMARC ties SPF and DKIM together. A domain publishes a DMARC policy in DNS at _dmarc.domain specifying what receivers should do with mail that fails both SPF alignment and DKIM alignment: p=none (monitor only), p=quarantine (move to spam), or p=reject (discard). DMARC passes if at least one of SPF or DKIM passes with correct alignment.

ARC (Authenticated Received Chain)

When a mailing list or forwarding service re-sends a message it breaks SPF (new sending IP) and often DKIM (modified subject or footers). ARC allows these intermediaries to record a signed snapshot of the original authentication results. Each intermediate server adds a set of three headers (ARC-Seal, ARC-Message-Signature, ARC-Authentication-Results) with an instance number. The final receiver can evaluate the ARC chain to decide whether to trust the original authentication even if SPF and DKIM now fail.

How to use this tool

  1. Copy your email headers. In most clients: open the message, find "Show original", "View source", or "Message details" (varies by client β€” look for "Raw", "Headers", or a keyboard shortcut like Ctrl+U). Select and copy all the text.
  2. Paste into the analyzer. Paste the copied headers into the text area on the main page, or press Ctrl+V anywhere on the page: headers are analyzed right away. You can also drag and drop a .eml, .msg or .txt file directly, or use the clipboard button.
  3. Click Analyze. The tool parses the headers and fetches live DNS records for SPF and DKIM verification. Results appear immediately.
  4. Review the sections. Use the section navigation to jump to Mail Flow, Authentication (SPF/DKIM/DMARC/ARC), Exchange Analysis, standard headers, or validation warnings. Click DNS record blocks and DKIM signature blocks to expand the details.

All processing runs entirely in your browser. No email header data is sent to any server. The only external requests are DNS lookups via Cloudflare's DoH endpoint (cloudflare-dns.com), which resolve domain names but do not transmit the header contents.

Ready to analyze your headers?

Open Email Header Analyzer