The Number Everyone Cites Is Wrong
Ask anyone about Outlook sending limits and they will say 10,000 emails per day. It is also nearly useless for anyone doing cold outreach.
The actual ceiling for cold email sent from an Outlook or Microsoft 365 account is 1,000 recipients per day - the non-relationship recipient cap. That applies to anyone you have never exchanged email with before. Every cold prospect you contact falls into that bucket.
There is also a rate limit most people never mention: 30 messages per minute. That one alone can wreck a sending sequence even if you are nowhere near your daily quota.
And then there is TERRL - a brand new tenant-wide external recipient cap that Microsoft started enforcing in April and is still rolling out to larger tenants right now. I have watched admins hit a hard block with no warning and no clear explanation why. Until they dig into TERRL, they have no idea what stopped them.
This article covers all of it. Every limit, every error code, the new tenant-level rules, and what practitioners who send at scale use as their working numbers.
The Full Limit Stack - Seven Caps, Not Three
Microsoft's own support article on sending limits is 469 words and covers three caps. The limit stack has seven. Here they all are, in one place.
| Limit Type | Free Outlook.com | Microsoft 365 / Exchange Online |
|---|---|---|
| Daily recipients (total) | ~300/day | 10,000/day (rolling 24-hr) |
| Recipients per message | 100 | 500 (To + CC + BCC combined) |
| Non-relationship (cold) recipients | Not published | 1,000/day |
| Messages per minute | Not published | 30 messages/min |
| SMTP AUTH concurrent connections | N/A | 3 concurrent |
| Receiving limit | Not published | 3,600 messages/hour |
| Tenant external recipients (TERRL) | N/A | Formula-based (see below) |
The 10,000 figure is your theoretical max for all recipients combined. But that number includes people already in your contact history. The moment you start emailing cold prospects - people you have never sent to before - the relevant cap drops to 1,000.
And the 500-recipient-per-message limit applies to the combined total of To, CC, and BCC. That is not 500 in the To field. It is 500 across all three fields together.
The 1,000 Non-Relationship Cap Is the Cold Email Ceiling
This limit trips up the most outbound teams, and it is the one most articles skip entirely.
Microsoft defines non-relationship recipients as anyone you have not previously exchanged email with. In cold outreach, that is every person on your list. Every new prospect, every first-touch contact, every lead you pulled from a database - all of them count against this 1,000/day cap, not the 10,000 headline number.
The practical implication is significant. If you load up 2,000 new leads into your cold email tool and push them all through a Microsoft 365 inbox, you will hit a hard block halfway through - even if the tool shows sent in the interface.
The block is immediate. There is no warning, no grace send, no soft throttle. One practitioner running a lead generation agency described exactly this scenario: the account locks mid-sequence with no indication to the rep that anything failed. The emails just stop moving.
A Microsoft moderator confirmed on the public Q&A forum that Exchange Online Protection also monitors for sudden volume spikes - even within the technical limits. An account that historically sent 50 emails per day spiking to 900 in a single morning is flagged for behavioral anomaly regardless of whether it is under the 1,000 cap.
The 30 Messages Per Minute Throttle
Exchange Online hard-limits sends to 30 messages per minute. That is the rate cap, and it applies at all times regardless of daily quota.
Find Your Next Customers
Search millions of B2B contacts by title, industry, and location. Export to CSV in one click.
Try ScraperCity FreeThink through what that means for a typical cold outreach sequence. If you have 1,000 non-relationship sends available for the day and you try to push them all in one burst, you need a minimum of 34 minutes just to clear the rate limiter - assuming every message goes through without a retry. Any sending tool that fires faster than 30 per minute will back up at the transport layer, and some messages will queue, delay, or bounce.
A user on Microsoft Q&A documented this precisely. They spread 1,000 sends over 6 hours - roughly 167 per hour, about 3 per minute - and still got flagged by Exchange Online Protection because it was unusual behavior for that account. Microsoft's answer: EOP evaluates behavioral patterns, not just raw numbers. An account that always sent 10 emails a day looks suspicious sending 150 in a morning, even at a low rate.
For cold email tools that connect via SMTP AUTH - which includes Instantly, Smartlead, and most major platforms - the constraint is even tighter. SMTP AUTH connections are capped at 3 concurrent sessions. High-volume multi-sequence setups running several campaigns in parallel can hit that connection ceiling before they hit any recipient limit.
TERRL - The Tenant-Wide Cap I See Admins Miss Constantly
This is the biggest structural change to Exchange Online sending limits in years. TERRL applies directly to cold email infrastructure and most practitioners have not accounted for it.
TERRL stands for Tenant External Recipient Rate Limit. Instead of capping what a single mailbox can send, it caps the total external recipients your entire Microsoft 365 tenant can email in a 24-hour sliding window. Every user in your org, every shared mailbox, every automated flow, every app connected to Exchange - their external sends all aggregate into one tenant-wide bucket.
The limit is not a fixed number. It is calculated using a formula based on how many paid email licenses your tenant has.
The formula for non-trial tenants is: 500 x (Purchased Email Licenses ^ 0.7) + 9,500
Here is what that produces at common license counts:
| Licenses | TERRL Daily Cap (External Recipients) |
|---|---|
| 1 | 10,000/day |
| 10 | ~14,422/day |
| 100 | ~22,059/day |
| 500 | ~37,515/day |
| 1,000 | ~72,446/day |
| 10,000 | ~341,500/day |
Trial tenants get a fixed cap of 5,000 external recipients per day. No formula, no scaling. If you are testing a new tenant or running a trial Microsoft 365 setup, you hit a wall at 5,000 regardless of how many inboxes you have configured.
Microsoft started enforcing TERRL in April , rolling it out by tenant size. Smaller tenants were hit first. Here is the enforcement schedule Microsoft published:
| Tenant Size (Licenses) | Enforcement Date |
|---|---|
| 25 or fewer | April 3, |
| 26 to 200 | April 18, |
| 201 to 500 | April 28, |
| 501 to 800 | March 11, |
| 801 to 1,000 | March 18, |
| 1,001 to 3,000 | March 25 to April 1, |
| 3,001 to 10,000 | April 8, |
| 10,001 and above | April 15, |
The rollout was not prominently announced through the standard Microsoft 365 admin message center when it first launched. Many admins discovered it when their outbound mail stopped moving mid-campaign.
How to Check Your TERRL Right Now
If you are running outbound through Exchange Online, you should know your tenant's current TERRL before you hit it.
In the Exchange Admin Center, go to Reports, then Mail flow, then Tenant Outbound External Recipients Rate. This shows your current usage, your tenant's daily quota, how much quota has been consumed, and whether enforcement is active or not yet live for your tenant size.
You can also check via PowerShell using the Get-LimitsEnforcementStatus cmdlet, which requires Exchange Online Management module version 3.7 or later. It returns your threshold, your observed value from the last 24 hours, and your enforcement status. If you are running automated monitoring, that command is worth scripting into a daily check.
Want 1-on-1 Marketing Guidance?
Work directly with operators who have built and sold multiple businesses.
Learn About Galadon GoldIf the report shows enforcement as Disabled, that means blocking is not yet active for your tenant tier - but the usage tracking is already running. The moment enforcement flips to Enabled, any overage from that 24-hour window becomes a hard block immediately.
The Cancelled ERR Limit - What Happened and Why It Matters
In April , Microsoft announced it would introduce a per-mailbox External Recipient Rate limit of 2,000 external recipients per 24 hours. This was going to apply per mailbox - on top of the tenant-wide TERRL - effectively capping every individual inbox at 2,000 external sends per day.
The announcement created serious operational concern for organizations that send newsletters, partner communications, or any high-volume external mail from standard mailboxes. Microsoft pushed the enforcement start date back multiple times following customer pushback.
On January 6, , Microsoft cancelled the ERR limit entirely. The Exchange team stated that customers had shared it would create significant operational challenges. The per-mailbox 2,000 external recipient cap is dead.
What is still in effect: the TERRL tenant-wide cap, the existing 10,000/day per-mailbox recipient rate limit, and the 1,000/day non-relationship recipient cap for cold contacts. The ERR cancellation does not change those numbers at all.
This matters because you will find articles referencing the 2,000 ERR limit as if it is still coming. It is not. TERRL is enforced, and the error codes when you hit it come with no grace period.
The NDR Error Codes You Will See When You Hit the Limits
When you exceed an Outlook or Exchange Online sending limit, you get a Non-Delivery Report with a specific error code. I see this every week - people Googling the code in a panic. Here is what they mean before that happens.
| Error Code | What It Means | How to Resolve |
|---|---|---|
| 550 5.7.232 | Trial tenant hit TERRL cap | Wait for 24-hr window to clear; consider upgrading to paid tenant |
| 550 5.7.233 | Non-trial tenant hit TERRL cap | Wait for 24-hr window to clear; check EAC report for usage |
| 432 4.3.2 | SMTP AUTH concurrent connection limit exceeded | Reduce simultaneous connections from your sending tool |
| 5.1.90 | Per-mailbox recipient rate limit hit | Wait for 24-hr window to reset |
| 5.2.2 | Per-message recipient limit exceeded | Split the recipient list across multiple sends |
There is no soft throttle on any of these. When you hit a TERRL or per-mailbox limit, Exchange Online issues a hard block. Sending does not slow down - it stops. The block clears automatically once enough time has passed that your 24-hour sliding window drops below the threshold. Depending on your sending pattern, that could be minutes or up to a full day.
Mail merge does not bypass any of these limits. A Microsoft moderator confirmed explicitly that mail merge is just a send method. Each recipient still counts against your Exchange Online recipient rate. Merge-send to 2,000 contacts through a connected tool and you hit the same cap as if you had sent 2,000 individual emails manually.
What Cold Email Practitioners Send vs. What Microsoft Allows
Microsoft technically allows up to 1,000 new cold contacts per day per mailbox. Cold email practitioners who care about deliverability send between 15 and 50.
That is not a typo. The safe operating range that experienced operators use is roughly 2 to 5 percent of the technical limit.
The reason is Exchange Online Protection. EOP does not just count recipients. It evaluates behavioral signals: how many of your sends bounced, how many got marked spam, how many triggered complaints, how your volume compares to your historical baseline. An account that has been sending 30 emails per day for two months looks completely different to EOP than one that jumps to 800 on a Tuesday with no prior history.
Find Your Next Customers
Search millions of B2B contacts by title, industry, and location. Export to CSV in one click.
Try ScraperCity FreeOne agency operator doing B2B outreach across French-speaking markets - working in technical industries where decision-makers rarely receive cold email - found that inbox placement in Outlook specifically required keeping volumes low and conversation-first. Their shift from volume-focused cold email to shorter, one-line openers designed to start a reply chain rather than pitch on the first message was driven directly by Outlook's EOP flagging longer, pitchy messages as spam regardless of technical compliance.
The practitioner consensus on volume looks like this:
| Metric | Microsoft Official Limit | Practitioner Working Number |
|---|---|---|
| Per inbox per day (cold) | 1,000 non-relationship | 15 to 50 max |
| Time between sends | 30 per minute max | 21+ minutes between sends recommended |
| Sending days | Any | Monday through Friday only |
| Warmup before sending cold | Not required by policy | 2 to 4 weeks minimum |
| Full trust build | Not specified | 8 to 12 weeks |
Operators who chase the 1,000/day ceiling without warmup and without behavioral care tend to find out the hard way that EOP enforcement does not come with a warning message either.
EOP's Warmup Ramp
Microsoft does not publish an official warmup requirement. There is no policy document that says warm up for X weeks before sending. But a Microsoft moderator on the Q&A forum has recommended a send ramp as a best practice: starting at 50 per day and building to 200, 350, 600, and then 1,000 over multiple days - with pauses to check deliverability signals at each step.
That recommendation exists because EOP's behavioral modeling treats sudden volume spikes as a spam signal, even from legitimate accounts. An account with no prior send history firing 500 emails on day one is pattern-matching to abuse behavior in the EOP model, regardless of whether the content is legitimate.
The warmup consensus among practitioners who have tested this on Microsoft 365 infrastructure specifically:
- Week 1: 10 to 20 emails per day
- Week 2: 20 to 40 emails per day
- Week 3: 40 to 60 emails per day
- Week 4: 60 to 80 emails per day
After four weeks at that ramp, the account has enough behavioral history that moving into standard outreach volume of 30 to 50 per day for cold does not trigger anomaly detection. Accounts that skip this and go straight to volume get flagged, and the recovery process - rebuilding domain reputation, getting off EOP suppression lists - takes far longer than the warmup would have.
One practitioner with a multi-client cold email operation noted that warmup duration matters even more on Microsoft 365 than on Google Workspace, because Outlook's EOP is significantly more aggressive at routing first-touch emails to junk. The same message that lands in the primary inbox on Gmail often goes to Outlook junk by default on a fresh domain.
The Cold Email Manifesto's own operational guidance confirms this directly: warm up for at least two weeks before sending any cold email, or you will be marked as spam and have to start over. On Microsoft 365 specifically, two weeks is the minimum - not the recommendation. Four weeks is where you start to see reliable inbox placement on Outlook recipients.
Sending FROM Outlook vs. Sending TO Outlook - Two Different Problems
Most articles collapse these into one topic - they are actually two separate problems. Using Outlook as your sending infrastructure is a completely separate problem from getting emails delivered to recipients who use Outlook.
The second problem - deliverability into Outlook inboxes from any sending infrastructure - is its own challenge, and it is getting harder. Practitioners who run high-volume B2B outreach report that Outlook's EOP spam filter is notably stricter than Gmail's on cold mail. Reply rates to Outlook-hosted domains have dropped meaningfully as EOP updated its filtering heuristics.
Practitioners running Outlook-heavy lists are sending shorter, lower-intent first messages. Instead of sending a full pitch in the first email, the approach is a single conversational line designed to get a reply - then moving the pitch into a second message triggered by that reply. The logic is that a reply from the prospect resets the relationship classification in EOP, making subsequent messages far more likely to reach the inbox.
One agency operator focused heavily on French and European B2B markets was specifically working on Outlook inbox placement as a strategic priority, because their clients' prospects predominantly used Outlook. Their finding: the technical setup of SPF, DKIM, and DMARC was necessary but not sufficient. The conversation structure of the email itself had to change. Pitching in message one nearly guaranteed junk routing. Starting a conversation first and pitching on the reply chain performed dramatically better.
That same operator was booking 30 to 100 sales meetings per month for clients in technical industries - manufacturing, financial services, and similar verticals where decision-makers are not used to receiving cold email. The Outlook deliverability problem was not a minor annoyance. It was a core operational constraint they had to architect around.
The New Bulk Sender Authentication Rules for Outlook Recipients
Starting in May , Microsoft began enforcing SPF, DKIM, and DMARC alignment for bulk senders delivering 5,000 or more emails per day into @outlook.com, @hotmail.com, and @live.com consumer inboxes. Non-compliant mail gets routed to junk first, with full blocking coming in later enforcement phases.
These are inbound filtering rules. They do not change your outbound sending limits. But if you are sending cold email to any volume of consumer Outlook addresses - or to business Microsoft 365 addresses - and your domain is not properly authenticated, your messages are getting filtered regardless of whether you are under every technical limit.
The authentication stack that matters for reaching Outlook recipients:
- SPF - Your sending IP must be authorized in your domain's SPF record
- DKIM - Your emails must be signed with a DKIM key that matches your sending domain
- DMARC - Your domain must have a DMARC policy, and SPF or DKIM must align with the From header domain
All three need to be in place. Outlook's bulk sender filtering requires SPF, DKIM, and DMARC alignment together. The alignment check - meaning the From domain matches the authenticated domain - is what Microsoft's filter is now specifically evaluating.
This is a separate technical requirement from anything related to your sending limits, but it runs in parallel. You can be fully under every sending cap and still have every email routed to junk if your authentication is incomplete.
Outlook.com Free vs. Microsoft 365 - Which Limits Apply to You
The limits are different depending on which Outlook product you are using, and the confusion between them is extremely common.
Free Outlook.com accounts are the consumer email service - equivalent to Gmail's personal tier. The daily recipient cap sits around 300 based on community reports. Microsoft does not publish the exact number for free accounts in official documentation, which is one reason it varies across what you will read online. The per-message recipient limit is 100.
Microsoft 365 Personal and Family plans - the paid consumer subscriptions - sit at 5,000 daily recipients with a 1,000 non-relationship cap.
Microsoft 365 Business plans, which are the ones B2B outreach teams use, get 10,000 daily recipients total, with the 1,000 non-relationship cap for cold contacts applying as the functional ceiling for outbound prospecting.
Exchange Online sending limits are set at the service level by Microsoft. Admins cannot raise them by opening a support ticket. The Microsoft Q&A forum confirms this directly: the limits are enforced by the service transport layer, not by any client-side setting, and support tickets will not expedite recovery from a lockout. The only resolution is to wait for the 24-hour window to clear.
SMTP AUTH Tools vs. Interactive Outlook - Different Constraints
I've set up enough cold email tools to say this with confidence - Instantly, Smartlead, and similar platforms connect to Microsoft 365 inboxes via SMTP AUTH rather than the interactive Outlook client. That distinction matters because SMTP AUTH connections face an additional constraint: only 3 concurrent connections are allowed at any time.
For a single inbox running one campaign, this is not a problem. For a setup running multiple sequences simultaneously - three or four active campaigns hitting the same inbox at the same time - messages start queuing, delivery slows, and timing-based sequence logic breaks down.
The rate cap of 30 messages per minute and the daily recipient limits apply equally to SMTP AUTH and interactive Outlook use. But the connection limit is SMTP AUTH-specific. It is worth checking your tool's configuration if you are running parallel campaigns through the same Microsoft 365 inbox.
If You Are at Scale, You Need a Different Infrastructure Approach
Microsoft is explicit about this in its own documentation: Exchange Online does not support bulk or high-volume transactional email. The platform was not built for it. The limits exist precisely to prevent it.
If your cold outreach volume exceeds what the per-inbox and per-tenant caps support, spread volume across multiple inboxes, each warmed independently, with separate sending domains that do not share reputation.
The standard infrastructure model for teams doing serious cold outreach at volume:
- Multiple sending domains - not your primary business domain
- Multiple inboxes per domain, typically 2 to 3 at most
- Each inbox sending 20 to 50 emails per day maximum
- Each domain and inbox warmed independently before live sends begin
- SPF, DKIM, and DMARC needs to be configured on every sending domain
At 30 inboxes sending 30 emails per day, you are moving 900 cold touches per day total - with each individual inbox well below any behavioral threshold that would trigger EOP flags. That architecture performs better than one inbox pushing against the 1,000 non-relationship cap every day.
To build those lead lists efficiently, you need a B2B contact source that lets you filter by title, industry, company size, and location. When every send counts against a hard daily limit, verified emails matter - a bounced email wastes a slot that does not reset for 24 hours. Try ScraperCity free - it pulls from Apollo, Google Maps, and an email finder and verifier, with plans starting at $49 per month and a free $5 trial credit.
The Practitioner Warmup Schedule for Microsoft 365 Specifically
Each email provider requires its own warmup approach. Microsoft 365 inboxes require a longer ramp than Google Workspace before you can push any meaningful volume without triggering EOP behavioral flags.
This is the ramp that cold email practitioners use specifically for Microsoft 365 infrastructure:
| Week | Daily Send Volume | Content Type |
|---|---|---|
| 1 | 10 to 20 per day | Warmup tool sends only - no cold prospects |
| 2 | 20 to 40 per day | Warmup tool sends - begin adding reply-based engagement |
| 3 | 40 to 60 per day | Mix of warmup and first cold sends, 10 to 15 cold max |
| 4 | 60 to 80 per day | Increase cold sends to 20 to 30; continue warmup in parallel |
| 5 and beyond | Maintain 30 to 50 cold per day | Full cold operation; do not scale beyond 50 per day per inbox |
The key principle: warmup sends should always outnumber cold sends during the ramp period. EOP sees the positive engagement signals from warmup - opens, replies, moves out of junk - and uses those to build a reputation baseline for the inbox. Cold sends against a blank reputation baseline trigger junk routing almost universally on Outlook.
Monitoring Your Limits Before You Hit Them
The TERRL dashboard in Exchange Admin Center is worth checking if your team sends any real volume through Microsoft 365. It shows your current external recipient count, your tenant quota, how much of the quota is consumed, and whether enforcement is currently active for your tenant size.
If you administer multiple inboxes across a tenant and have any automated flows or CRM integrations sending external email - Salesforce, HubSpot, Dynamics, any webhook-based notification - those sends count toward your TERRL just like manual sends. The TERRL counter is tenant-wide and blind to the source. It does not differentiate between a human sending a one-to-one email and an automated workflow blasting a notification to 500 external contacts.
Distribution groups are counted based on how many external members are in the expanded group. If your tenant has a distribution list with 1,000 external members and you send one message to that list, it counts as 1,000 against your TERRL. Nested groups are expanded fully before counting - so a group of groups can add up fast without looking like a large send on the surface.
The practical check: before you launch any campaign or integration that touches external recipients at volume, run Get-LimitsEnforcementStatus in PowerShell, check your current observed value, and know how much headroom you have in the 24-hour window. A blocked tenant mid-campaign is a worse outcome than taking five minutes to check the numbers first.
Quick Reference - All the Numbers in One Place
Here is the full stack of Outlook sending limits, consolidated from Microsoft's official documentation across the Exchange Online service description, Microsoft Q&A, and the TERRL announcement:
| Limit | Free Outlook.com | Microsoft 365 Personal/Family | Microsoft 365 Business / Exchange Online |
|---|---|---|---|
| Daily recipients (total) | ~300 | 5,000 | 10,000 |
| Recipients per message (To+CC+BCC) | 100 | 500 | 500 |
| Non-relationship (cold) recipients per day | Not published | 1,000 | 1,000 |
| Rate limit | Not published | Not published | 30 messages per minute |
| SMTP AUTH concurrent connections | N/A | N/A | 3 |
| Tenant external recipients (TERRL) | N/A | N/A | 500 x (licenses^0.7) + 9,500 |
| Trial tenant TERRL | N/A | N/A | 5,000 per day fixed |
| Attachment size | 20 MB | 25 MB | 25 MB (admin can set up to 150 MB) |
The Bottom Line on Outlook Sending Limits
The 10,000/day number is a ceiling for internal and relationship-based email. For cold outreach, the working ceiling is 1,000/day per mailbox - and the safe operating number for practitioners who care about inbox placement is far lower than that: 15 to 50 per day per inbox.
TERRL has changed the picture further by adding a tenant-wide cap that aggregates all your users' external sends. If you are running multiple SDRs through a shared Microsoft 365 tenant, your team's collective volume now counts against a single threshold. A ten-person team each sending 200 cold emails per day is 2,000 external recipients against the tenant TERRL - which, for a small tenant, may be a material portion of the daily quota.
The ERR limit of 2,000 per mailbox that generated so much concern in and is cancelled. That is good news. TERRL is enforced, and the error codes when you hit it - 550 5.7.232 for trial tenants, 550 5.7.233 for non-trial tenants - come with no grace period.
The takeaway for anyone running outbound through Microsoft 365: know your seven limits, check your TERRL headroom before any campaign launch, warm up every inbox properly before touching cold contacts, and run your list through email verification before sending. Every bounced email is a wasted slot against a hard daily cap that does not reset until 24 hours have passed.