Why Outlook Rejects Your VPS Email When SPF/DKIM/DMARC All Pass

By Nate Corwin · Updated 2026 · self-hosting practitioner since 2017

This article contains no affiliate links. The providers discussed are evaluated by their email deliverability characteristics, not commission.

You set up Postfix on a fresh VPS. SPF record: pass. DKIM signing: pass. DMARC policy: pass. Gmail delivers fine. Yahoo delivers fine. Then you send to an Outlook address and get this:

550 5.7.1 Unfortunately, messages from [your IP] weren't sent. Please contact your Internet service provider since part of their network is on our block list (S3150).

That error has nothing to do with your authentication setup. Microsoft blocked your email before it looked at your SPF record, before it checked your DKIM signature, before it evaluated your DMARC policy. It rejected your email because of who your VPS provider is, specifically because other tenants on your provider's network have sent enough spam to get the entire IP range flagged. You are being punished for your neighbors.

How Microsoft actually filters VPS email

Gmail uses machine learning that weighs recipient engagement: opens, replies, "mark not spam" actions. A new VPS IP with no history can build reputation gradually as recipients interact with your messages. Microsoft does not work this way.

Microsoft's Exchange Online Protection (EOP) runs incoming email through three explicit scoring systems before the message reaches a mailbox:

The critical difference: Outlook does not factor in recipient engagement the way Gmail does. Microsoft's filtering documentation confirms that engagement signals (opens, clicks, replies) do not rehabilitate a sender's reputation. The exception is their Sender Reputation Data (SRD) program, a panel of vetted Outlook users across 200+ countries who vote on whether forwarded samples are junk. SRD votes feed into SmartScreen filtering, but individual senders cannot influence or monitor them.

What this means for VPS operators: Gmail gives you a path to build reputation through legitimate sending. Microsoft gives you a wall. If your IP or your provider's ASN is on their blocklist, no amount of clean sending from your individual server will change the score. You need to either get delisted or route around the block.

What S3150 and S3140 mean

Both error codes produce nearly identical bounce messages. The difference is the blocking mechanism:

CodeTypeTriggerResolution
S3150Policy-based blockYour IP belongs to an ASN or IP range that Microsoft has blocklisted due to spam volume from the network. Also triggered by sudden volume spikes from previously quiet IPs.Submit delisting request. Often requires human review at Microsoft. May take days.
S3140Reputation-based blockYour IP neighborhood has consistently poor engagement rates, high bounce rates, or suspicious sending patterns over time.May auto-resolve with demonstrated improvement. Delisting request also available.
5.7.606-649Office 365 / EOP blockIP banned by Exchange Online Protection specifically. Affects delivery to business/enterprise Outlook accounts.Delist via sender.office.com portal.
5.7.511Permanent banIP explicitly banned. Cannot use self-service portals.Forward the full NDR (bounce message) to delist@microsoft.com. Microsoft responds within 48 hours.

The S3150 bounce includes a timestamp and correlation ID in brackets at the end. Save this. If you need to escalate with Microsoft support, they can look up the exact filtering decision using that ID.

The phrase "part of their network is on our block list" is the key. It says "their network" (your provider's network), not "your IP." Microsoft is blocking the neighborhood, not the house.

Why Gmail works but Outlook doesn't

This is the question that drives VPS operators to forum posts at 2 AM. The same email, from the same server, with the same authentication, delivers to Gmail and bounces from Outlook. The reason is architectural:

Gmail evaluates senders primarily by engagement. It watches what recipients do with your messages (open, reply, archive, delete, report spam) and adjusts your domain reputation accordingly. A new IP on a clean domain starts neutral and moves up or down based on real recipient behavior. Gmail Postmaster Tools shows your domain-level reputation as High, Medium, Low, or Bad. You can rehabilitate a damaged reputation by sending good mail that people engage with.

Microsoft evaluates senders primarily by infrastructure. It checks your IP against blocklists (including UCEPROTECT, which lists entire ASNs), assigns explicit numerical scores (SCL, BCL, SRL), and makes filtering decisions before examining content or authentication. Engagement does not rehabilitate you. If your IP range is flagged, the block persists until Microsoft manually lifts it, which they may do temporarily, only to re-apply weeks later.

A Virtualmin forum user described the cycle: "Microsoft unblocks temporarily, then re-blocks within days to months. Gmail, Yahoo, Proton all accept the same emails." A DirectAdmin forum thread documented support request IDs incrementing by over 9 million between November and March, suggesting massive volumes of similar complaints from self-hosted mail operators. One user summarized it: "Big companies pay for some kind of whitelisting and then they don't block each other. It's always the small companies who are hit worst."

Which VPS providers are blocked

No VPS provider guarantees clean IPs for Microsoft delivery. But some are consistently worse than others, based on community reports and ASN-level blacklist data:

ProviderOutlook statusEvidence
OVHcloudASN blockedAS16276 listed on UCEPROTECT Level 3 since January 2021, covering the entire Autonomous System. 609 abusive IPs out of 4.2 million triggered the listing. OVHcloud refuses to pay UCEPROTECT's subscription for express delisting. Microsoft uses UCEPROTECT data. OVHcloud community thread confirms.
Linode/AkamaiRange blocked172.105.88.x/24 range blocked with S3140 error, recurring over 4+ years. Linode support can contact Microsoft on behalf of customers. Linode community thread.
DigitalOceanRange blockedAMS (Amsterdam) datacenter IPs worst affected. Listed on UCEPROTECT L3. Mail-in-a-Box forum (March 2021). Moot point for email since DO blocks all SMTP ports anyway.
HetznerMixedCommunity reports suggest ~30% of IPs are pre-blocked by Office 365. Port 25 opens after ~1 month account history, which filters out throwaway accounts and keeps IP pools relatively cleaner. Microsoft Q&A thread documents Hetzner IP blocks.
ContaboMixedIP 178.238.226.x blocked despite 0/99 blacklist hits. Contabo support contacted Microsoft and resolved it within 2 hours. Microsoft Q&A thread (2015, but pattern continues).
NetcupBetter than averageCloudron forum reports indicate Netcup has successfully resolved Microsoft blocklist issues by contacting Microsoft directly. Fewer ASN-level complaints than budget providers.

The pattern: budget providers attract more spammers because of low prices and easy signup. Those spammers poison the ASN reputation for everyone on the same network. Microsoft blocks the entire network segment rather than hunting individual IPs. You inherit the reputation of every tenant who shared your provider's IP range before you.

Checking your reputation with SNDS

Microsoft's Smart Network Data Services (SNDS) is a free portal that shows how Microsoft evaluates your IP's reputation. It's the closest thing to Gmail's Postmaster Tools for the Microsoft ecosystem.

Portal: sendersupport.olc.protection.outlook.com/snds/

Setup takes about 48 hours:

  1. Sign in with any Microsoft account.
  2. Click "Request Access" and enter your VPS IP addresses (up to 20 IPs per request).
  3. Microsoft verifies ownership via automated email to the abuse@ or postmaster@ address listed in your IP's WHOIS record. Click the authorization link.
  4. Once approved (24-48 hours), the dashboard shows message volume, spam trap hits, complaint rates, and a color-coded reputation indicator: green (positive), yellow (mixed), red (serious problems).

There's a catch for low-volume VPS senders: SNDS only displays data for IPs sending more than 100 emails per day to Microsoft addresses. If you run a personal mail server handling 10-30 messages daily, SNDS will show "insufficient email seen." That message is not neutral. It means Microsoft has almost no positive reputation data for your IP. You're invisible to their scoring system, which defaults to suspicion rather than trust.

While you're in SNDS, enroll in JMRP (Junk Mail Reporting Program), Microsoft's feedback loop. When an Outlook user clicks "Report spam" on your message, JMRP forwards a copy to an email address you designate. This lets you identify and suppress recipients who mark you as junk before their complaints degrade your SRL score further.

What actually fixes it

Ranked by reliability, from most to least:

1. External SMTP relay (most reliable)

Route outbound email through a dedicated email service on port 587. Your VPS handles receiving; the relay handles sending through IPs that Microsoft already trusts. In Postfix, this is one line: relayhost = [smtp.provider.com]:587 with SASL authentication.

Options by cost:

This solves the problem permanently because you stop sending from your VPS IP entirely. Microsoft never sees your provider's ASN in the connection. The trade-off: you're paying a third party to send mail from a server you control, which defeats part of the self-hosting premise. But it works.

2. Microsoft delisting request

Two portals, depending on the error code:

Critical tip from andreas.heigl.org: if you receive an automated "not qualified for mitigation" rejection, reply directly to that rejection email with substantive arguments: your authentication setup, your sending volume, how recently you acquired the IP. This escalates to a human reviewer. The author reported resolution within 24-48 hours after the initial automated denial.

Another tip from Tilaa's blog: if the IP was recently assigned to you, send Microsoft an email confirmation or PDF from your VPS provider proving the allocation date. This distinguishes you from the previous tenant who caused the block.

The problem with delisting: it's often temporary. Multiple forum reports describe a cycle of unblock, send clean mail for weeks or months, get re-blocked. The Virtualmin thread documents this pattern explicitly. You're treating the symptom (your specific IP) while the cause (your provider's ASN reputation) persists.

3. IPv6 sending (OVHcloud-specific)

UCEPROTECT does not blacklist IPv6 addresses. For OVHcloud users whose ASN is blocked on IPv4, configuring Postfix to prefer IPv6 (smtp_address_preference = ipv6) bypasses the UCEPROTECT listing entirely. All OVHcloud services include at least one IPv6 address. This workaround is documented in Luc Saffre's blog.

Limitation: not all receiving mail servers support IPv6. Microsoft and Gmail do. Smaller providers may not. You may need to fall back to IPv4 for some recipients, which puts you back in blocked territory.

4. IP change

Request a new IP from your VPS provider and check it against MXToolbox, Spamhaus, UCEPROTECT, and the SNDS portal before installing your mail server. If the new IP is clean, you get a fresh start, until your provider's ASN gets re-flagged. This is a reset button, not a solution.

What does not work

FAQ

Why does Outlook reject my VPS email when SPF, DKIM, and DMARC all pass?

Microsoft filters email at the infrastructure level (IP address and ASN reputation) before evaluating authentication. If your VPS provider's network range is on Microsoft's blocklist because other tenants sent spam, your email bounces with error S3150 or S3140 regardless of your authentication setup. Gmail gives new senders a path to build reputation through engagement. Microsoft does not.

What are Microsoft error codes S3150 and S3140?

Both produce the same bounce: "part of their network is on our block list." S3150 is policy-based blocking (your provider's network range is flagged). S3140 is reputation-based blocking (poor engagement or high bounce rates from your IP neighborhood). Both mean the problem is your provider's network, not your individual configuration. For Office 365 blocks (error 5.7.606-649), delist at sender.office.com. For Outlook.com blocks, use Microsoft's support form.

Which VPS provider has the best Outlook deliverability?

No VPS provider guarantees clean delivery to Outlook. Netcup has the fewest community complaints. Hetzner's 1-month port 25 wait period keeps their IP pools relatively clean, though ~30% of IPs may still be blocked. OVHcloud is the worst: their entire ASN (AS16276) has been on UCEPROTECT Level 3 since January 2021, and Microsoft uses that list. The only reliable fix is routing outbound email through an external SMTP relay like Amazon SES, SendGrid, or Postmark.