Exchange Online message limits – not that cut and dry!

Update 4/15/15 – Office 365 has increased the allowed maximum message size to 150 MB, giving Office 365 administrators the ability to set the maximum message size of their choosing from 1 MB up to 150 MB. The default maximum message size for Office 365 mailboxes is still 25 MB, and they don’t plan on to changing the setting on existing accounts.
More at

I’m currently on project finishing an Office 365 migration (yay – I’m finally back together with my true love: messaging!) and we’re in the process of migrating their 50+ domains off of FOPE, as they were initially a Wave 14 tenant, and over to EOP.  Technically, they were automatically migrated to EOP as part of the upgrades in Q3/Q4 2013, however they still have their MX records pointing to either the or domains, so traffic is being first routed thru FOPE before it makes it to EOP. And if you may or may not know, it’s crunch time and Microsoft wants everyone off by June 1 (if you have an O365 domain):

As part of determining the impact these MX record changes will have on message flow, the big one is around accepted message size. In FOPE, if a message went over the size limit you could have it qurantined and the messaging administrator could release it to the mailbox, granted your Receive Connector allowed it, and your MaxReceiveSize on your mailbox matched according.

A large debate has come up around Exchange Online limits, as detailed below:

In talking with my collegues, there was a lot of confusion around message limits, and in talking with with my contacts in Microsoft, I can finally clear the air on what these limits are. And it’s actually simpler than you think :mrgreen:

Let’s start with internal messages first. In Office 365 as of this writing (and I say this because there’s no telling when they may/may not change) it’s 35MB to send and 36MB to receive.

This is hard set and cannot be changed:

With your on-prem mailboxes, where you could use the set-mailbox -maxsendsize or -maxreceivesize cmdlets, these don’t even exist in Exchange Online. Try it for yourself! I could expound on this but it’s pretty cut and dry on the limits from mailbox to mailbox within the organization, as well as between on-premise and the cloud.

Now external – this is where things get fun! There is a hard limit of 25MB for inbound messages from the Internet in Exchange Online. But you say “Chris – I’ve checked get-transportconfig and compared on-premise versus my Office 365 tenant, and Office 365 says unlimited. Where is the 25 MB limit?”

This is all facilitated through FOPE’s replacement, EOP (Exchange online protection). What’s nice about EOP is that Microsoft is using the same basic codebase between Exchange 2013 on premise and Exchange Online Wave 15. You get the flexibility of the protection settings being right inside of Office 365 (where before you had to go over to the FOPE site to manage it).

But the thing to remember that EOP product is continually a work in progress. Just last week they posted a list of what I think is some pretty significant features adds to the product:

Now that I’ve sidetracked you from the message limits and talked up the good of the product, it’s time to drop the bomb. This 25MB limit comes with some strings attached. Back to my original comment on changing the MX records for the customer’s domains to use <domain_com>, when we changed a few lesser used domains we ran through about 8 different test scenarios to test the behavior after moving to EOP. We were aware of the 25MB limit and were looking at ways to either limit a message size to 25MB – to be alerted and/or alert the sender when they’ve hit this limit (since we could do it now in FOPE). We could, say, created the following rule:

So we were surprised when we sent a 26.96MB message to see an NDR saying that it was larger than the 36MB limit. WHAT????


How can a 29.67MB message actually be 37MB in size? And where does this 36MB maximum message size come into play? I had to ping my contact at Microsoft on this one and sure enough within the hour I had an email back that answered everything

When emails are sent over the internet, they are encoded. This can lead to a growth of 33% in size. Once the message is received at its final destination the message is decoded. Because messages just pass through EOP they are not decoded and thus, show the size of the email as it is in transit. Going back to the rule we tried to create, we didn’t take into account that rules evaluate the size of a single attachment (ex. Rule predicate is Any attachment is greater than or equal to…) using the raw/real size of the attachment. They do not see the 33% size in growth!

When looking up these messages in the message trace they saw a size of 36MB, which is the result of the approximately 33% in growth. EOP evaluates the message size as it looks while the message is in transit so it sees the message approximately 33% larger than it actually is. Microsoft’s general recommendation is that customers set a rule with a max size 33% greater than what they tell their users.

This is a great article which talks about this growth in size, which they shared:

Hopefully this helps clear things up – after spending a majority of the week digging, debating, and denying, it’s good to know where the line exists in the sand and how to help draw it for customers.

Chris Blackburn

Learn More →

One thought on “Exchange Online message limits – not that cut and dry!

  1. Robin November 18, 2014 at 9:34 am

    Thanks! This saved us having to raise a support case with Microsoft ourselves 🙂


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.