Suped

Why are my emails landing in Office 365 spam folders?

Published 26 Jul 2025
Updated 18 Oct 2026
15 min read
Summarize with
Why emails land in Office 365 spam folders, article thumbnail.
Updated on 18 Oct 2026: We updated our Office 365 troubleshooting advice with current Microsoft header guidance and practical steps for resolving legitimate mail sent to junk.
Your emails are landing in Office 365 spam folders because Microsoft 365 has a negative or uncertain signal about the message, the sender, the domain, the IP, the recipient relationship, or the receiving tenant's policy. A simple subject line rarely fixes it. Microsoft is usually reacting to reputation, authentication, list quality, engagement, content, or a local rule inside the recipient organization.
Start by proving whether this is truly an Office 365-wide problem, then inspect the headers and check authentication, sender reputation, complaint signals, and the exact sending stream. A few test inboxes are useful, but they are not enough evidence on their own.
Fast answer
If Microsoft 365 alone sends your mail to Junk Email, investigate Microsoft-specific filtering and recipient-tenant policy. Check authentication, message headers, bounces, complaints, sending volume, domain age, IP reputation, and whether the affected recipients are in one tenant or many tenants.

What Office 365 is reacting to

Office 365, now part of Microsoft 365, filters mail through multiple layers. Some signals come from your DNS and headers. Some come from historical recipient behavior. Some come from Microsoft tenant policies that you do not control. That is why the same message can hit the inbox at Gmail, iCloud Mail, and one Outlook tenant, then land in Junk Email at another Microsoft tenant.
  1. Authentication: Configure SPF and DKIM for each sending source. DMARC passes when either SPF or DKIM passes with the required domain match to the visible From domain.
  2. Reputation: Microsoft judges the sender domain, sending IP, sending pattern, complaint history, and past recipient interaction.
  3. List quality: Bad addresses, stale opt-ins, low engagement, and complaint-heavy segments can push commercial mail toward spam.
  4. Content: Links, redirects, attachments, URL reputation, misleading branding, and repeated templates can influence placement.
  5. Tenant rules: A recipient's Microsoft 365 admin can apply anti-spam, anti-phishing, quarantine, safe sender, or mail flow rules that change delivery.

Signal

What it means

Where to look

SPF
Whether the sending IP is authorized for the envelope sender domain
DNS and headers
DKIM
Whether the signature verifies for the signing domain
Headers
DMARC
Whether SPF or DKIM passes with the required From domain match
Headers and aggregate reports
CAT and DIR
Filtering category and message direction
Microsoft headers
SCL
Spam confidence level, supporting context rather than a cloud delivery verdict
Headers
BCL
Bulk complaint level, an estimate of complaint likelihood
Headers and the applied anti-spam policy
Policy
Tenant-specific filtering
Recipient admin
Use this as a first-pass map before changing DNS or campaign copy.

Prove the problem before changing anything

The first mistake is assuming that one Microsoft test inbox tells the whole story. A single inbox has its own history, user choices, mailbox rules, tenant settings, and previous interaction with your domain. Determine whether the issue appears across several independent Microsoft 365 tenants or only inside one organization. Personal Outlook.com and Hotmail mailboxes use Microsoft's consumer mail service; assess those results separately from Microsoft 365 business tenants.
If only your own Microsoft tenant junked the message, the fix can be local. If multiple unrelated Office 365 tenants junk it, the sender-side problem is more likely. If delivery problems also appear at Gmail, Yahoo, or iCloud Mail, broaden the investigation beyond Microsoft.
Microsoft Defender portal message trace showing a message delivered to Junk Email.
Microsoft Defender portal message trace showing a message delivered to Junk Email.
  1. Scope: Send the same message to unrelated Microsoft 365 tenants, personal Outlook mailboxes, and non-Microsoft mailboxes.
  2. Headers: Save the full original headers from each result, not screenshots of the inbox folder.
  3. Stream: Compare transactional mail, sales mail, newsletter mail, and any third-party sender separately.
  4. Rates: Check bounce rate, complaint rate, unsubscribe rate, opens, clicks, and replies around the date placement changed. Treat open and click rates cautiously because privacy protections and automated scanning can distort them; compare replies and conversions too.
  5. Recipients: Separate active opt-in recipients from cold prospects, purchased contacts, and old publisher-sourced lists.
Do not trust one seed inbox
Just because a message lands in your own junk folder, it does not mean it lands in everyone's junk folder. The reverse is also true. Office 365 placement needs several independent samples before you change sending infrastructure or policy.

Read the Microsoft headers

Headers turn a vague spam complaint into evidence. Office 365 adds fields that show authentication results, spam confidence, bulk mail signals, connecting IP, and filtering actions. Read these before touching DNS because headers show what Microsoft actually evaluated for that delivered message. Capture the original message source in Outlook or ask the recipient's admin for the full headers.
Header fields to capturetext
Authentication-Results: spf=pass smtp.mailfrom=bounce.example.com; dkim=pass header.d=example.com; dmarc=pass action=none header.from=example.com; compauth=pass reason=100 X-Forefront-Antispam-Report: CIP:203.0.113.25; SCL:5; SFV:SPM; IPV:NLI; CAT:SPM; DIR:INB; PTR:mail.example.com X-Microsoft-Antispam: BCL:6 X-MS-Exchange-Organization-SCL: 5 Received-SPF: Pass
A passing SPF result does not prove the mail is safe. A passing DKIM result does not prove the visible From domain is the one being authenticated. A DMARC pass confirms that SPF or DKIM passed with the required domain match, but Microsoft still applies composite authentication, content, reputation, bulk, and tenant policy checks.
What a header can prove
  1. Authentication: Whether SPF and DKIM passed and whether DMARC found the required domain match.
  2. Routing: Which IP and hostname handed mail to Microsoft.
  3. Verdict: Whether the message received spam, phishing, bulk, or policy treatment.
What a header cannot prove
  1. Global scope: One recipient's result does not prove the same result everywhere.
  2. Root cause: A spam verdict still needs reputation, content, and list evidence.
  3. Future delivery: Filtering changes as recipient behavior and sender history change.

Interpret Microsoft filtering verdicts

Start with CAT (filtering category) and DIR (message direction), then read the spam filtering verdict (SFV) for an override or filtering decision. SCL alone does not determine a cloud message's verdict or delivery action. Check BCL for bulk mail and compauth for authentication failures, then confirm the applied policy and delivery event in message trace.

Header evidence

Meaning

Next step

CAT:SPM
Spam category, usually delivered to Junk Email under default policy
Confirm the applied anti-spam action and inspect X-CustomSpam if present
CAT:HSPM
High confidence spam category, quarantined by default
Review the quarantine reason and applied policy
SFV:BLK
The sender matches the recipient's Blocked Senders list
Ask the recipient or admin to remove an incorrect blocked entry
SFV:SKB
The sender matches a blocked sender or domain in an anti-spam policy
Ask the admin to review the matching policy entry
SFV:SPM
Spam filtering marked the message as spam
Read CAT to identify the category before choosing a fix
SRV:BULK and BCL
Bulk mail classification met the configured BCL threshold
Compare the applied threshold with BCL and review consent and engagement
compauth=fail reason=000
Explicit authentication failed under an enforcing DMARC policy
Fix the SPF or DKIM domain match and retest
Confirm the filtering category and applied policy with message trace; the same SCL can appear with different cloud verdicts.
BCL estimates complaint likelihood for bulk mail; it is not your measured complaint rate. The default anti-spam policy uses a threshold of 7, Standard preset uses 6, and Strict preset uses 5. Custom thresholds differ, so a BCL below 7 can still trigger bulk filtering.
Use Outlook's Report > Not junk action for a legitimate message. This provides a report through the organization's configured reporting workflow. Moving a message to the Inbox alone does not repair authentication or sender reputation.
Use allow entries narrowly
A Safe Senders entry is a mailbox-level override, and threat checks still apply. It does not guarantee inbox placement or a particular SCL value. Use a narrow temporary exception only while the tenant admin investigates the original verdict. Broad or permanent allowlists can admit spoofed mail.

Fix authentication first

Authentication is not the whole answer, but it is the cleanest place to start. If Microsoft cannot verify that your sender is authorized to send for your visible From domain, every other signal starts from a weaker position. Check the domain with a domain health check and then review real DMARC reports rather than only checking the DNS record.
Configure both SPF and DKIM, then verify that at least one passes with the domain match DMARC requires. If a third-party sender signs with its own DKIM domain and uses its own bounce domain for SPF, both checks can pass while DMARC fails for your visible From domain. Default relaxed matching accepts domains with the same organizational domain; strict matching requires an exact domain match. If Microsoft 365 sends your outbound mail, publish the two DKIM CNAME records provided for the custom domain and enable DKIM signing before retesting. The generic DKIM TXT example below is for senders that publish public keys directly.
Illustrative DNS records, replace the documentation IP and public keydns
example.com. TXT "v=spf1 ip4:203.0.113.25 -all" selector1._domainkey.example.com. TXT "v=DKIM1; k=rsa; p=REPLACE_WITH_PUBLIC_KEY" _dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com"
Use p=none for an initial reporting stage, verify every legitimate sender, then move to enforcement. Keep an established quarantine or reject policy when authorized sources are already verified. Replace the example reporting address with a mailbox that processes aggregate reports.
Enforcement can expose hidden senders
Moving DMARC to quarantine or reject can reveal old CRMs, invoicing tools, publisher systems, or shared mail relays that were never configured correctly. Use DMARC monitoring to identify every source before enforcing rejection.
Looks configured
  1. SPF: A record exists, but it has too many includes or misses a sender.
  2. DKIM: A selector exists, but the sender does not sign every stream.
  3. DMARC: A record exists, but reporting is not being reviewed.
Actually healthy
  1. SPF: Every sender is authorized and SPF uses no more than 10 DNS-querying terms, including nested includes.
  2. DKIM: Every major stream signs with your domain or a domain DMARC accepts.
  3. DMARC: Reports show the real senders, failure reasons, and policy impact.
If failures appear only after forwarding, compare the original and forwarded headers. Forwarding can break SPF, and message changes can break DKIM. Ask the recipient admin to review trusted Authenticated Received Chain (ARC) sealers for a legitimate intermediary.

Check reputation and list quality

If authentication passes and headers do not identify a local override, investigate reputation and list quality. Microsoft does not need a broken SPF or DKIM record to junk mail. High complaint rates, poor engagement, sudden volume increases, stale recipients, and commercial content can all create a spam pattern. On shared sending infrastructure, clean DNS does not erase reputation carried by traffic that uses the same IP pool.
Blocklist checks matter here, but they are only one part of reputation. A domain or IP can be absent from every public blocklist (blacklist) and still perform badly at Microsoft because Microsoft has its own data. Use blocklist monitoring because a blacklist listing gives you a concrete remediation path and often explains sudden placement changes.
Reputation signals to triage
These bands are practical investigation priorities, not universal mailbox provider thresholds.
Clean
Monitor
Stable opt-in list, low bounces, low complaints, steady volume.
Warning
Pause segment
Reply or conversion rate drops, bounces rise, or one segment starts complaining.
Critical
Stop and fix
Multiple tenants junk the same stream, blocklist hits appear, or complaints spike.
  1. Complaints: People marking mail as junk is one of the strongest negative signals for commercial campaigns.
  2. Bounces: Hard bounces show poor address quality and can hurt a sending stream quickly.
  3. Engagement: Compare replies and conversions with bounce and complaint trends. Open and click rates alone do not establish inbox placement.
  4. Volume: New sending patterns need a controlled ramp, especially on new domains or new IPs.
  5. Consent: Publisher opt-ins need clear proof, source tracking, and suppression if recipients do not recognize your brand.
If Microsoft is quarantining rather than junking the message, the investigation changes. Quarantine often points to stronger policy or threat verdicts. The related O365 quarantine fixes path is worth following when messages never reach the user's Junk Email folder.

Fix the message and sending pattern

Content checks are still real, but they are rarely just about one word in the subject. Microsoft looks at the whole message: links, domains, redirects, branding, plain text quality, HTML structure, unsubscribe handling, attachments, and how recipients react to similar mail.

Cause

Why it hurts

Fix

Link domain
URL reputation differs from sender reputation
Use trusted branded links
Redirects
Tracking chains look risky
Reduce hops
Attachments
Files trigger extra scanning
Use expected file types and remove unnecessary attachments
HTML
Broken markup reduces trust
Simplify the template
Unsubscribe
Difficult exits increase complaints
Provide a clear one-click option
Common message-level causes of Office 365 junk placement.
For a fast message-level check, send a real campaign sample through the Suped email tester before sending it to a Microsoft seed set. Use it to investigate authentication and message configuration, then verify Microsoft folder placement with recipient evidence.

Email tester

Send a real email to this address. Suped shows a results button when the test is ready.

?/43tests passed
The sending pattern matters as much as the template. If you send a new commercial campaign to old contacts, add a new sending domain, increase volume sharply, and switch link tracking at the same time, you cannot isolate which change affected delivery. Keep high-volume marketing and transactional traffic on separate authenticated subdomains and sending streams. Do not rotate domains to escape a damaged reputation. Change one thing at a time and measure folder placement after each change.

Use Suped to verify sender authentication

Suped is the DMARC and email authentication platform behind this site. It collects DMARC aggregate reports, maps sending sources, monitors SPF and DKIM status, and alerts on authentication failures or blocklist (blacklist) changes. DMARC aggregate reports show receiver-reported authentication and policy results, rather than final Inbox or Junk Email placement. This workflow addresses the sender-side evidence in an Office 365 investigation. It does not replace Microsoft tenant message trace or policy review.
Issue steps to fix dialog showing the issue overview, tailored fix steps, and verification action
Issue steps to fix dialog showing the issue overview, tailored fix steps, and verification action
Add the domain, let reports collect, verify each sending source, fix any SPF or DKIM mismatch, then use alerts to catch new failures before Office 365 placement drops. MSPs and agencies can manage multiple client domains in one dashboard, which matters when Microsoft spam issues appear across several brands at once.
Best use of Suped in this issue
  1. Source discovery: Find every system sending mail for your domain before enforcing policy.
  2. Issue fixes: Use automated detection and steps to fix failed authentication.
  3. Hosted records: Manage SPF and DMARC changes without repeated manual DNS edits.
  4. Alerts: Get notified when a new sender, policy failure, or blocklist hit appears.

A practical fix sequence

Use this order to avoid random changes. The point is to isolate the cause, fix the smallest confirmed issue, then retest with the same seed set and the same type of message.
Flowchart showing the Office 365 spam troubleshooting order.
Flowchart showing the Office 365 spam troubleshooting order.
  1. Confirm scope: Test unrelated Microsoft 365 tenants and non-Microsoft mailboxes; assess personal Outlook.com results separately.
  2. Save evidence: Collect full headers, delivery location, message trace data, and recent campaign metrics.
  3. Fix DNS: Correct SPF, DKIM, DMARC, return-path, and tracking domain problems first.
  4. Segment risk: Pause cold, old, low-engagement, or complaint-heavy segments while testing.
  5. Reduce triggers: Remove risky links, redirect chains, attachments, and unclear unsubscribe paths.
  6. Retest: Send the same sample again and compare Microsoft headers before changing another variable.
When to escalate
Escalate to the recipient's Microsoft 365 admin when only one tenant is affected, headers show a tenant policy action, or the message is quarantined by that organization. Ask the admin to check CAT, DIR, SFV, the applied policy, and the recipient's Blocked Senders list. Include the message ID, timestamp with time zone, sender, recipient, full headers, and why the recipient expected the email.

Ask the recipient admin to resolve false positives

If legitimate mail still goes to Junk Email after sender checks, the recipient's admin needs to investigate the applied policy. Microsoft's false-positive troubleshooting guidance separates spam cases from phishing or malware detections.
  1. Trace the message: In the Exchange admin center, open Mail flow > Message trace and inspect the delivery events. A status of Delivered also covers messages sent to Junk Email or quarantine; it does not prove inbox placement.
  2. Find the policy source: Check the Tenant Allow/Block List, the user's Blocked Senders list, connection filtering, and mail flow rules. Standard and Strict preset policies take precedence over custom anti-spam policies, so confirm which policy actually covers the recipient.
  3. Submit a false positive: In Microsoft Defender, open Actions & submissions > Submissions > Emails and select Submit to Microsoft for analysis. Provide the network message ID or original .eml/.msg file and an affected recipient. Select the clean-message option that matches your investigation.
  4. Apply a narrow fix: Remove an incorrect block or correct the matching rule. If needed, create a temporary allow entry during submission and review its scope and expiry. Keep phishing and malware investigations with the security admin.
  5. Validate and retain evidence: Allow 15-30 minutes for anti-spam policy changes and up to one hour for mail flow rules, then resend a comparable sample. Confirm the folder and new headers, review the submission verdict, and retain the submission ID for support.
If a message reaches the Inbox and moves later, ask the admin to check mailbox rules and zero-hour auto purge (ZAP). ZAP can move delivered messages after a later spam or threat verdict, so the initial delivery event does not tell the whole story.

Views from the trenches

Best practices
Confirm folder placement across unrelated Microsoft tenants before changing infrastructure.
Review bounces, complaints, opens, and replies before blaming one mailbox provider.
Keep full headers for every test message so filtering evidence stays measurable.
Common pitfalls
Assuming one seed inbox proves all Office 365 recipients see the same placement.
Changing subject lines first while DNS, source reputation, and list quality stay unknown.
Treating active opt-in as enough when recipients do not recognize the sender brand.
Expert tips
Separate transactional, marketing, sales, and publisher traffic before comparing results.
Pause weak segments while testing because complaints can hide the effect of DNS fixes.
Retest one variable at a time so each Microsoft header change has a clear cause.

Marketer view

Marketer from Email Geeks says Office 365 spam placement should first be checked against bounce, complaint, open, and reply trends before assuming a filter problem.
2020-02-27 - Email Geeks

Marketer view

Marketer from Email Geeks says a sender should not assume Microsoft is the only provider affected until there is data across multiple mailbox providers.
2020-02-27 - Email Geeks

Frequently asked questions

DMARC monitoring

Start monitoring your DMARC reports today

Suped DMARC platform dashboard
What you'll get with Suped
Real-time DMARC report monitoring and analysis
Automated alerts for authentication failures
Clear recommendations to improve email deliverability
Protection against phishing and domain spoofing