925 cold emails from Microsoft 365, zero human replies

Same copy, same lists, same five weeks. Our Google Workspace inboxes got 15 people to write back. Our Microsoft 365 inboxes got none. Here is what we measured, what we ruled out, and the part we still can't explain.

0 / 925
human replies from Microsoft 365 inboxes
15 / 1,780
human replies from Google Workspace inboxes
100/100
warm-up score of the Microsoft inboxes, the whole time
p = 0.002
chance of a gap this big if both providers performed the same (Fisher exact test)

The numbers

We run outbound for our clients and for ourselves, from 22 sending domains. Five of them run on Microsoft 365, seventeen on Google Workspace. Same sequences, same prospect lists, same sending windows. Only the mailbox provider changes.

Sending inboxesProspects contactedHuman repliesReply rateAuto-repliesAuto-reply rate
Google Workspace (17 domains)1,780150.84%261.46%
Microsoft 365 (5 domains)92500.00%20.22%

Method: 3 Aug to 9 Sep 2026. Each prospect counted once, in the week of their first email. Replies counted as distinct people, not messages. Our own test inboxes excluded. At the Google rate we would have expected about 8 human replies from the Microsoft side. We got zero.

What we ruled out

Our first reflex was the usual checklist. Every item came back clean, checked in DNS on 9 September.

1

Authentication

SPF including spf.protection.outlook.com, DKIM selectors published, DMARC at p=reject. All passing.

2

Blocklists

None of our 22 sending domains on SURBL. We checked, because a listed domain does send you to junk (more on that below).

3

Volume

30 emails a day per inbox. Exchange Online allows 300. We were at a tenth of the limit.

4

Warm-up

Every Microsoft inbox showed a 100/100 warm-up score on the day we pulled these numbers. Including three created the day before.

So fixing the config would not have fixed anything. There was nothing broken to fix.

Your deliverability scores are measuring something else

Two tools told us everything was fine. Neither was measuring where the email actually lands.

The warm-up score is a closed loop between inboxes of the same tool's users. It proves your inbox can talk to other warm-up inboxes. It says nothing about a real prospect's Outlook.

mail-tester gave 8.3/10 to an email that Outlook put straight into junk. We tested it on 8 September: two identical emails, same minute, same recipient. One from a clean domain landed in the inbox. One from a domain listed on SURBL landed in junk. Both scored the same.

If you want to know where your email lands, send it to a real inbox at the provider you target and look. It takes five minutes and beats every score.

Théo Pascard, co-founder, Enjyn

The free placement test nobody uses

An out-of-office reply only fires when your email reaches the inbox. It does not fire from the junk folder. So the auto-reply rate measures placement, and nothing else: it does not care about your subject line, your copy or your targeting.

It also arrives in hours, not weeks, and it is about twice as frequent as human replies. On our data it separated the two providers from the first week, while human replies were still in the noise: 1.46% on Google, 0.22% on Microsoft (p < 0.001).

Limit: an auto-reply still fires from Gmail's Promotions tab. It tells inbox from junk, not Primary from Promotions.

The question we couldn't answer in September

Here is the honest part. We route email so that Microsoft inboxes write to Microsoft recipients and Google to Google. That is standard practice, and it means 895 of our 925 Microsoft sends went to Outlook recipients. Only 2 went from Google to Outlook.

So two stories fit the data equally well. Either our Microsoft 365 inboxes are the problem. Or Outlook filters cold email hard, whoever sends it. From this data alone, we can't tell them apart.

The random split we started on 9 September never reached a usable size: on day two Microsoft restricted two of the inboxes on that side, and it never restarted. So in October we changed the method and asked Microsoft directly.

What we found in October

Every email Microsoft receives carries a spam score in its headers, the SCL: 1 means inbox, 5 means junk. From 13 to 16 October we sent the same email from six sending setups to the same eight Microsoft 365 business inboxes, on three separate days, and read the score on every message. Three sending inboxes per setup, one dedicated domain each.

Sending setupDomain ageReal cold email sent before the testLanded in the inbox
New Microsoft 365 inboxes, bought through a reseller3 weeksNone24 / 24
New Microsoft 365 inboxes, our own tenant4 weeksNone24 / 24
New Google Workspace inboxes, our own tenant3 weeksNone24 / 24
New Microsoft 365 inboxes, a second reseller3 weeksNone23 / 24
Google Workspace inboxes, our own tenant4 weeks8 to 20 a day each, since 5 October2 / 24
Shared "done-for-you" inboxes from our sending platform3 to 7 monthsMonths of campaigns0 / 24

Method: eight Microsoft 365 business seed inboxes per test (MailReach), one test per setup on 13, 14 and 16 October, the same six-line email every time. Every inbox placement scored SCL 1, every junk placement SCL 5. The one miss in the 23/24 row is an email that never arrived, not one in junk. A setup passes if at least 5 of the 8 land in the inbox on at least 2 of the 3 days. Four setups passed, two failed, and the gaps were large.

1

The mailbox provider was not the problem

At the same age and with no sending history, Microsoft 365 and Google Workspace inboxes reached Outlook the same way, through a reseller or through our own tenant.

2

Shared inboxes never made it

The done-for-you inboxes landed in junk on every email, every day. They inherit the reputation of everyone else on the same pool.

3

Sending is what wears an inbox down

The Google Workspace inboxes that failed were the same age as the winners. The difference is that they had been sending real cold email to Outlook. On 6 October they landed 8 out of 8 in the inbox. A week later, 0 out of 8. Unused inboxes on the same domains still landed in the inbox. Microsoft scores the sending inbox, not only the domain.

4

Sending less did not save them

An inbox held at 8 emails a day went to junk like one at 20. Volume was not the variable.

So, back to September: Outlook does not junk cold email whoever sends it, since fresh dedicated inboxes reach it. Our five summer Microsoft domains had been sending 30 emails a day for weeks, and most likely wore down the same way. We can't prove that last part after the fact.

Limits: eight seed inboxes per test, not twenty. One domain per setup, so a pass says "this domain passes", not "every domain from this provider passes". One placement tool. Seed inboxes are not real companies with their own filtering rules.

What we still don't know

Whether the winners hold once they carry real volume. Every setup that passed was measured at rest, and the only one that had been sending cold email failed within a week.

So we are restarting Microsoft in steps: a few inboxes first, re-measured every Monday, and an inbox comes out the day it slips. We will add the result here in November.

What we changed

1

Only fresh, dedicated inboxes write to Outlook

Since 23 September no shared inbox writes to an Outlook recipient. New Outlook prospects now get their first email only from dedicated Microsoft 365 inboxes that passed the October test, added a few at a time and taken out the day they slip.

2

We track auto-replies per provider, every week

It is free, it is fast, and it is the only placement signal we trust on real prospects.

3

We stopped averaging "Microsoft"

Outlook recipients reached directly and those behind a security gateway (Mimecast, Proofpoint) behave differently. One blended number hides it.