How to read Office 365 spam headers: A simple guide for non-admins

How to read Office 365 spam headers: A simple guide for non-admins

4 min read

This post is part of our “What to do when there’s no email admin” series — practical guides for anyone who suddenly finds themselves responsible for email systems they’ve never touched before.

If you missed earlier posts, start with: Understanding Microsoft 365 admin approval and Why your emails bounce (and how to fix deliverability issues).


What to do when Office365 sends your emails to spam — and how to decode what actually happened

When emails land in spam inside an Office365 mailbox, the first question users ask is: “Why?”
And unless you have a dedicated IT team, that question usually comes straight to you — the developer, support lead, or office manager who suddenly needs to act as the “email admin.”

The good news: Microsoft does tell you why an email was flagged.
The bad news: it does so in the most cryptic, acronym-heavy spam header you’ll ever see.

This guide breaks that down into something readable, so you can diagnose the issue quickly without needing deep Exchange or security expertise.

1. Start with the spam header: X-Forefront-Antispam-Report

Every Office365 spam evaluation starts here.

To find it:

  1. Open the raw message source of the email
  2. Search for the header that begins with:
    X-Forefront-Antispam-Report:
  3. Copy the entire value — it will look like a long string of acronyms and score markers

This header contains everything Microsoft’s anti-spam engine (EOP/MDO) used to decide whether your message was safe, suspicious, or clearly spam.

Microsoft maintains a full reference here:
https://learn.microsoft.com/en-us/defender-office-365/message-headers-eop-mdo

2. Check the sending IP evaluation: IPV

Look for the section that begins with IPV:.
This tells you what Microsoft thought of the sending IP address.

  • IPV:NLI — Not Listed; the IP is not found on any spam blocklist
  • IPV:CAL — Client Allowed; the IP is explicitly allowed by the recipient
  • Missing or different values — typically means the sending IP has a poor reputation

If you don’t see NLI or CAL, check the IP using a blacklist checker:
https://mxtoolbox.com/blacklists.aspx

Important: Nylas does not send emails or provide the SMTP server.
Emails go out through the user’s own provider, so any IP reputation issue belongs to:

  • Their mail server
  • Their domain
  • Their sender history

If something looks suspicious, the recipient’s email admin will need to review it.

3. Check how “spammy” the content looked: SCL

The Spam Confidence Level (SCL) explains how the message body scored during Microsoft’s analysis.

  • SCL:-1 — Safe sender; content isn’t scanned
  • SCL:0–1 — Message looks clean
  • SCL:2–4 — Content looks somewhat spammy
  • SCL:5+ — Spammy enough to be sent to spam or quarantine

If your SCL is above 1, revise the content.
Avoid URL-shorteners, remove tracking layers, align sender domains with SPF/DKIM, and avoid overly short or overly “marketing-like” messages.

4. Check the final verdict: SFV

The Summary of Filter Verdicts (SFV) tells you the final decision Microsoft made.

Common values:

  • NSPM — Not spam
  • SFE — Allowed by user
  • SKA — Allowed by admin or provider
  • SKB — Blocked by admin or provider
  • SKS — Spammy content; placed in spam
  • SPM — Classified as spam
  • SKO — Quarantined but released
  • BLK — Blocked due to complaints or sender block

If you see SKS, SPM, or BLK, that explains exactly why the user found it in spam.

5. What to do once you know the values

Here’s a quick guide:

If IPV indicates an IP problem:
Check the sending IP’s reputation and contact the domain’s mail admin or provider.

If SCL is high:
Adjust the message content. Even small text changes can improve deliverability.

If SFV indicates a block:
The sender may have been manually blocked or flagged.

If you’re still unsure:
Copy the full headers and use diagnostic tools (including AI models) to interpret the entire filtering chain.

You don’t need to be an Exchange admin to decode spam headers

Microsoft’s headers look intimidating, but once you know which fields matter, diagnosing spam placement becomes much more manageable.
A few quick checks — IPV, SCL, and SFV — often tell the full story.

If you or your customers run into unclear filtering results, refer back to the headers, the support article, or the Nylas Developer Docs for deeper guidance.

This post is part of our “What to do when there’s no email admin” series.
If you haven’t yet, read earlier entries:

Related resources

Why emails bounce (and how to fix deliverability issues without an email admin)

This post is part of our ‘What to do when there’s no email admin’ series…

Understanding Microsoft 365 admin approval (and what it means for your integration)

This post is part of our “What to do when there’s no email admin” series,…

How to integrate Zoom meetings into a SaaS application

Quick summary: Compares how developers can use the Zoom Cloud Recording API, custom Linux SDK…