Self-hosted email marketing with full source code. Pay once, own forever. Get AcelleMail — $74 →

Microsoft SNDS Walkthrough for AcelleMail Operators

Microsoft Smart Network Data Services (SNDS) — registration, the data fields that matter, the GREEN/YELLOW/RED colors, and the AcelleMail-side action for each.

Microsoft's Smart Network Data Services (SNDS) is to Outlook what Postmaster Tools is to Gmail — except the UX is rougher, the data is delivered as raw CSV plus a clunky web view, and many AcelleMail operators don't realize it exists. The data quality is excellent; SNDS shows complaint rate, spam-trap hits, and per-IP filter status with daily granularity, which is more actionable than Gmail's blended "Spam Rate" graph.

If your audience includes Outlook.com / Hotmail / Live.com / MSN.com / Office 365 consumer accounts (collectively ~15-25 % of most B2C lists), SNDS is mandatory. This walkthrough covers registration, every field, and the AcelleMail-side action when something goes red.

Step 1 — Register IPs

Open sendersupport.olc.protection.outlook.com/snds, sign in with a Microsoft account (any free account works), and click Request Access. The form asks for:

  • The IP range you want monitored — must be IPs you own or have rights to monitor. Single IPs are fine; CIDR /24 ranges are typical for ESP-pool senders.
  • A contact email — Microsoft uses this for the periodic "your IP was listed/delisted" notifications.
  • A business reason — write something accurate ("we operate AcelleMail at IP X.X.X.X for outbound transactional + marketing email").

Approval is typically 24-72 hours. Microsoft does check IP ownership; if you don't have a reverse-DNS PTR record matching the IP, expect rejection (set up PTR with your hosting provider first — most VPS hosts do it on request).

Step 2 — The dashboard

After approval, the SNDS dashboard at sendersupport.olc.protection.outlook.com/snds/data.aspx shows a row per IP per day with:

Column Meaning Action threshold
Filter Result GREEN / YELLOW / RED YELLOW = pause growth; RED = stop sending
Activity Period Start UTC start of the 24-hour data window
Sample HELO What your MTA announces in HELO/EHLO Should match reverse-DNS
Sample From Most-common From: line we saw Spot-check for spoof attempts
RCPT Commands Total recipient envelope count Sanity-check vs. AcelleMail's send count
Data Commands Successful data transfers RCPT - DATA = bounces/rejections from MS
Complaint Rate Reports / delivered < 0.40 % healthy; 0.40-0.60 % yellow; > 0.60 % red
Trap Hits Spam-trap hits Any non-zero is concerning; > 5 = audit list source

The "Filter Result" column is the headline. The other columns are the diagnostic details when filter goes yellow/red.

Reading filter colors

GREEN — your IP is in good standing. Microsoft's filtering classifies your mail by per-message content; reputation isn't a barrier. Action: maintain.

YELLOW — your IP is rate-limited. Outlook accepts the SMTP connection but defers many messages with 421 RP-002 codes. Action:

  1. Pause new volume to Microsoft IPs immediately (segment by domain in AcelleMail and exclude outlook.com, hotmail.com, live.com, msn.com).
  2. Investigate complaint rate or trap hits — whichever spiked is the cause.
  3. Run engagement-only campaigns (recipients with opens in last 30 days) to your active Microsoft segment for 5-7 days.
  4. Watch SNDS daily — recovery to GREEN typically takes 7-14 days.

RED — your IP is blocked at the edge. Connections are accepted then everything 5xx rejected. Action: stop sending entirely from this IP. Continuing to push will extend the block. Plan a 14-21 day cool-down + recovery via warmup-style ramp.

JMRP — the FBL companion

The Junk Email Reporting Program is the per-recipient-complaint feedback loop that Outlook delivers to a mailbox you specify. Always configure JMRP alongside SNDS — see feedback-loops-fbl-setup for the AcelleMail Feedback Loop Handler config.

Without JMRP, the SNDS Complaint Rate is your only signal — and it's aggregated daily, which means a 6 % complaint rate on one campaign at 02:00 UTC won't show on the dashboard until 24+ hours later. JMRP delivers per-message ARF in near-real-time, which lets you respond same-day.

Common patterns

SNDS signal AcelleMail diagnostic
GREEN → YELLOW with Complaint Rate spike Specific campaign caused complaint storm; check Bounce Log for FBL feedback_type=abuse rows in same window
GREEN → YELLOW with Trap Hits 0→5+ List quality problem; audit recent imports for purchased/scraped data
YELLOW persistent (no recovery) Continued sending into yellow extends it. Pause + send only to engaged.
Sample HELO different from PTR Misconfigured MTA; a soft signal but worth fixing for consistency
RCPT > DATA delta growing Receiver-side rejection is increasing; correlate with Postmaster IP rep

Multi-IP correlation

If you have multiple sending IPs, SNDS data per-IP per-day reveals which IP is receiving Microsoft's complaints. AcelleMail's per-server stats can be cross-referenced:

SELECT
  ss.name as server,
  ss.smtp_host,                          -- the sending IP
  COUNT(*) as today_sent,
  SUM(CASE WHEN bl.bounce_type = 'unknown' THEN 1 ELSE 0 END) as complaints
FROM sending_servers ss
JOIN tracking_logs tl ON tl.sending_server_id = ss.id
LEFT JOIN bounce_logs bl ON bl.tracking_log_id = tl.id
WHERE tl.created_at > CURRENT_DATE
GROUP BY ss.id
ORDER BY complaints DESC;

The IP at the top of this list is the one you should be checking against SNDS. If SNDS shows YELLOW for that IP, the AcelleMail-internal complaints corroborate the Microsoft signal.

Common AcelleMail mitigations

When SNDS goes YELLOW:

Admin → Sending Servers → <yellow IP> → Edit
   Sending quota: <halve from current>
   Throttle (per second): <halve from current>

Then in any list-server or campaign-server assignment:

Customers → <customer> → Lists → <list> → Sending Server Assignment
   Outlook/Hotmail recipients → "SES-Cold" (different IP)
   All other recipients → "SES-Hot" (the previously-yellow IP, still serving)

This pattern — segment-by-recipient-domain → assigned-to-different-server — keeps the yellow IP serving its non-Outlook traffic while the Outlook traffic recovers on a different IP.

Related reading

FAQ

Does SNDS data update in real time?

No, daily. The "Activity Period Start" column is UTC midnight; data for "today" appears 4-12 hours after midnight UTC.

What if my IP isn't in SNDS?

Either it doesn't send to Microsoft (no Microsoft recipients on your list), or it's not registered. Cross-check by sending a test to a @hotmail.com address you control; if it doesn't arrive, your IP may already be at RED before SNDS shows it.

Can I see Office 365 corporate (paid) reputation?

No. SNDS covers consumer Outlook only. Corporate Office 365 has separate filtering (SmartScreen + Defender for Office 365) with no public dashboard.

Why does my IP sometimes drop off the SNDS list?

Microsoft only shows IPs with active sending. If you don't send to Microsoft for 7+ days, the IP drops from the daily report. Resume sending and it reappears within a day.

CSV export workflow for long-term tracking

SNDS retains 33 days of data on the dashboard but provides no API. The pattern that works:

  1. Set a daily cron that downloads the SNDS CSV for your IPs (manual today; some operators script it via Playwright since SNDS hates programmatic access).
  2. Store in a tracked locationops/snds-history/YYYY/MM/snds-YYYY-MM-DD.csv.
  3. Periodically import to a small sqlite or duckdb for trend analysis. The most-actionable trend is "Complaint Rate over a 90-day window" — Microsoft's monthly fluctuation is mostly noise; quarterly trend signals real reputation drift.
  4. Alert on YELLOW or RED appearance — when any IP's daily row turns non-GREEN, post to a Slack channel. The CSV import script can do this with ~10 lines of awk.

Microsoft mitigation request — when to file

If your IP goes RED and you've identified + fixed the cause, you can file a Microsoft mitigation request asking for the block to be lifted. Eligibility:

  • The IP must currently be RED in SNDS.
  • You must describe the corrective actions taken.
  • Microsoft typically requires 7 days of clean sending data before reviewing.

Approval rate is moderate (50-70 %). When granted, IP goes back to YELLOW (not GREEN) — earn GREEN through 14-21 days of clean sending.

Don't file mitigation while the cause is unclear or the issue is still active. A premature filing tells Microsoft you don't understand your own program; that hurts the next time you legitimately need help.

Cross-correlation with AcelleMail bounce log

When SNDS shows YELLOW with elevated Complaint Rate, find the affected campaigns:

-- Microsoft-only complaint pattern, last 14 days
SELECT
  c.id, c.name, c.subject, c.created_at,
  COUNT(tl.id) as ms_sent,
  SUM(CASE WHEN bl.bounce_type = 'unknown' THEN 1 ELSE 0 END) as ms_complaints
FROM campaigns c
JOIN tracking_logs tl ON tl.campaign_id = c.id
JOIN subscribers s ON s.id = tl.subscriber_id
LEFT JOIN bounce_logs bl ON bl.tracking_log_id = tl.id
WHERE c.created_at > NOW() - INTERVAL 14 DAY
  AND (s.email LIKE '%@outlook.com' OR s.email LIKE '%@hotmail.com'
       OR s.email LIKE '%@live.com' OR s.email LIKE '%@msn.com')
GROUP BY c.id
HAVING ms_complaints * 1.0 / ms_sent > 0.005
ORDER BY ms_complaints DESC;

Campaigns above this threshold likely caused the SNDS yellow signal. Audit them for the corrective actions.

More in Sending & Deliverability