Microsoft has announced that Office 365 (Exchange Online) now supports up to 150MB email messages. This is quite a large increase from the previous limit of 25MB (actually 35MB, I’ll explain why shortly) and no doubt will be a welcome change for many customers.

The previous limits were a deployment blocker for some customers that I’ve worked with who either had a higher limit for their general user population (often more like 50MB) or who had a few specific mailboxes that needed to receive very large emails (often a system-monitored mailbox). While I am generally of the opinion that email is a poor transport mechanism for large files I can understand how the modern era of fast networks, cheap storage capacity, and the convenience of email all come together to create the situation where large email attachments become a requirement.

Before we go any further let me point out that just because you can set a message size limit of 150MB, it doesn’t mean you necessarily should. By all means increase the message size limit to suit your business, but don’t just crank it right up to 150MB for the sake of it. Consider the impacts this will have on your network bandwidth, client performance, on-premises infrastructure (if you’re running a Hybrid configuration), journalling, and the fact that you’ll more often than not find that other companies you’re emailing support a far smaller message size limit. All of this may actually lead to a poor experience for your users, and an increase in support requests for you.

I suspect the new 150MB limit is not due to Microsoft endorsing the use of email for sending big files. The more likely reason in my view is that it is large enough number to completely silence any customer complaints (and therefore remove the burden of those support calls) about the previous limits.

With that said, let’s look at how you can configure the message size limit in Exchange Online.

Comparisons with On-Premises Exchange Server

As many of you already know there are multiple places that message size limits can be applied for an on-premises Exchange Server environment. These include:

  • Organization-wide transport config
  • Send/receive connectors
  • AD site links
  • Individual recipients

As a general rule organizations tend to apply a consistent limit across all of those settings, however the capability is certainly there to customize the configuration to suit nearly any scenario that arises (for example, preventing large email messages from being sent to very large distribution groups).

With Exchange Online we get far less administrative control as the customer than we do for on-premises Exchange. There’s no access to send/receive connectors or AD site links. And although we can see the transport configuration (which has unlimited max send/receive limits) we can’t make any changes to those settings.

PS C:\Scripts> Get-TransportConfig | fl maxreceivesize,maxsendsize

MaxReceiveSize                  : Unlimited
MaxSendSize                     : Unlimited

This is why, as Microsoft explained in their announcement, we need to configure the message size limits on a per-mailbox basis.

Using Mailbox Plans to Configure a Default Max Message Size Limit

The settings applied to new mailboxes that we create in Exchange Online come from the mailbox plan. When you connect to Exchange Online with PowerShell you can see the mailbox plans for your tenant.

PS C:\Scripts> Get-MailboxPlan | fl name,maxsendsize,maxreceivesize,isdefault


Name           : ExchangeOnlineDeskless-f941c750-22ce-401e-8c1a-9c64bd2cff41
MaxSendSize    : 35 MB (36,700,160 bytes)
MaxReceiveSize : 36 MB (37,748,736 bytes)
IsDefault      : False

Name           : ExchangeOnline-39e6f97b-82c8-4b18-9d0a-eb6e24418584
MaxSendSize    : 35 MB (36,700,160 bytes)
MaxReceiveSize : 36 MB (37,748,736 bytes)
IsDefault      : False

Name           : ExchangeOnlineEnterprise-f32821d4-90a3-4c6b-ab75-56f35adb3bfb
MaxSendSize    : 35 MB (36,700,160 bytes)
MaxReceiveSize : 36 MB (37,748,736 bytes)
IsDefault      : True

Notice that one of the plans is the default, and will be applied to new mailbox users when they are created.

Another way to look at this is to group mailboxes by mailbox plan.

PS C:\Scripts> Get-Mailbox | Group-Object -Property:MailboxPlan | Select Name,Count | ft -auto

Name                                                          Count
----                                                          -----
ExchangeOnlineEnterprise-f32821d4-90a3-4c6b-ab75-56f35adb3bfb    25
                                                                  1

Interestingly I seem to have one mailbox there with no mailbox plan. As it turns out that is the discovery search mailbox, so we don’t need to worry about that one.

PS C:\Scripts> get-mailbox | where {$_.mailboxplan -eq $null}

Name                      Alias                ServerName       ProhibitSendQuota
----                      -----                ----------       -----------------
DiscoverySearchMailbox... DiscoverySearchMa... sixpr04mb015     50 GB (53,687,091,200 bytes)

So, let’s say that I want to set a send/receive message size limit of 55MB for new mailboxes when they are created. The mailbox plan can be updated with that new setting as follows.

PS C:\Scripts> Set-MailboxPlan ExchangeOnlineEnterprise-f32821d4-90a3-4c6b-ab75-56f35adb3bfb -MaxSendSize 55MB -MaxReceiveSize 55MB

Remember, you’ll need to determine the exact name of your mailbox plan when you run that command.

Managing Message Size Limits for Existing Mailboxes

Although I’ve updated my mailbox plan above, existing mailboxes still have the previous settings applied. A change to the mailbox plan has no impact on existing mailboxes.

PS C:\Scripts> Get-Mailbox Alan.Reid | fl mailboxplan,maxsendsize,maxreceivesize

MailboxPlan    : ExchangeOnlineEnterprise-f32821d4-90a3-4c6b-ab75-56f35adb3bfb
MaxSendSize    : 35 MB (36,700,160 bytes)
MaxReceiveSize : 36 MB (37,748,736 bytes)

To modify a single mailbox we can simply run Set-Mailbox as follows.

PS C:\Scripts> Set-Mailbox Alan.Reid -MaxReceiveSize 55MB -MaxSendSize 55MB

If you need to modify all of your mailboxes you can pipe Get-Mailbox into Set-Mailbox as follows.

PS C:\Scripts> Get-Mailbox -Resultsize Unlimited | Set-Mailbox -MaxReceiveSize 55MB -MaxSendSize 55MB

Naturally that means you can update any subset of your users by filtering the output of Get-Mailbox first. If you’re not sure, just run your Get-Mailbox command first and make sure it is only returning the mailboxes you want to modify before you start piping it into Set-Mailbox.

Message Size Limits != Attachment Size Limits

As always you need to be aware that this setting controls the maximum message size, not the maximum attachment size. An email message is bigger than just the files that are attached to it, thanks to the message content itself as well as other data that is piled on. Or as Microsoft describes it, “overhead needed for encoding, encapsulation, compression and decompression of larger messages.”

This is why the previous Exchange Online message size limit of 25MB was actually implemented as a 35MB limit. 25MB was advertised on the Exchange Online service description, but the extra 10MB of growth allowance was added for growth allowance.

office-365-message-size-limits

In your career as an email administrator you’ll have many conversations with an end users about this. Just remember to include that growth allowance when configuring the maximum message size, because whatever you tell your users will inevitably be interpreted by them as the maximum attachment size.

Additional Notes

Microsoft limits our administrative control in Exchange Online in many interesting ways. For example, we can use Set-MailboxPlan to modify the max send/receive message sizes, but many of the other mailbox plan settings can’t be modified.

Also, Microsoft limits the values that we can set for max send/receive message size. For example, if I try to set the limit to 200MB I get this error.

PS C:\Scripts> Set-MailboxPlan ExchangeOnlineEnterprise-f32821d4-90a3-4c6b-ab75-56f35adb3bfb -MaxSendSize 160MB

The operation on mailbox "ExchangeOnlineEnterprise-f32821d4-90a3-4c6b-ab75-56f35adb3bfb" failed because it's out of the current user's write scope. The value of property 'MaxSendSize' cannot exceed the limit of 150 MB.

Not particularly relevant, I just find it interesting. Mailbox plans are very useful, I would like to see them come to on-premises Exchange Server in future, as I know many customers who have had to write extensive custom scripts to handle customizations to the default settings of mailboxes when they are being provisioned, and maintaining them over the life of the mailbox.

Summary

Microsoft has listened to their Office 365 customers and increased the message size limits in Exchange Online. As you can see configuring the new settings is quite simple both for existing mailboxes and for those configured in future. However, I do recommend you proceed with caution and avoid causing more problems than you solve by increasing the limit too much for your environment.

About the Author

Paul Cunningham

Paul is a former Microsoft MVP for Office Apps and Services. He works as a consultant, writer, and trainer specializing in Office 365 and Exchange Server. Paul no longer writes for Practical365.com.

Comments

  1. John Abbott

    Hi Paul, thanks for the article.
    We have a hybrid Exchange 2013/365 environment while migrating users. An unusual situation, where an onprem mailbox had 1K MaxSendSize, MaxReceive & hidden, due to being on long term leave. That mailbox then migrated to 365 & there it appears to have the default 35MB limits, both in EAC & via a check with Get-Mailbox. However, the user still has 1K limits when trying to use mailbox. Can’t do similar check onprem, as mailbox no longer there.
    Does anyone have advice on checking/resolving this please?
    Thanks John

  2. Stephen Michael Robards

    I need to upgrade my office 365 to the highest possible size of email and attachments possible in the middle of my 365 contract.

  3. Shan

    Hi Paul, we have Exchange on premise. I have put 35 MB limit on the transport and connector level and 15 MB limit on all existing mailboxes. However, the 15 MB limit does not apply automatically for any new mailbox that gets created. For O365, we have the default mailbox plan. What is the equivalent for on premise Exchange? Thank you

  4. Francis Revere

    Paul,

    I ran a “Get-RemoteMailbox | Sort-Object Name | ft Name,Alias,MaxReceiveSize,MaxSendSize,RecipientLimits” and all my users, including myself, who recently started show all as “Unlimited” except for one user who has MaxReceiveSize set to 20MB. Discovered this after they reported not receiving a large email which 5 other recipients did. Obviously something is wrong here. I do get the exact error you did when trying to change the MaxReceiveSize higher than 150MB. Would post snippet to show, but….

    1. Avatar photo
      Paul Cunningham

      Is the user licensed differently than the rest of the users? If not, then I would suggest you open a support case to find out what else is going on.

  5. AtlasDan

    Paul, I have 20 mailboxes that are not part of a mailbox plan. How can I get a list of these 20 mailboxes? Thanks for the great article!

    1. AtlasDan

      Ok, never mind. Speed reading again. I missed the command you listed to find that one mailbox in your org. Thanks!

  6. Mike

    Is there anyway to limit the amount of email a user can send per hour or per day? The defaults are too high for us. E1 or E3

  7. Lon Vetula

    I got the following error when I tried the change all mailboxes command you gave. reQuire is the name of the company. Any ideas?

    The operation couldn’t be performed because ‘reQuire’ matches multiple entries.
    + CategoryInfo : NotSpecified: (:) [Set-Mailbox], ManagementObjectAmbiguousException
    + FullyQualifiedErrorId : [Server=DM2PR02MB479,RequestId=341e0927-f0ba-483b-987b-0aefdc6c338a,TimeStamp=3/24/2017
    8:35:40 PM] [FailureCategory=Cmdlet-ManagementObjectAmbiguousException] 14A33151,Microsoft.Exchange.Management.Rec
    ipientTasks.SetMailbox
    + PSComputerName : outlook.office365.com

    1. Lon Vetula

      Cancel that… it worked on all mailboxes and that was just an error for one mailbox. Thanks for the article!

  8. SauraJyoti

    Sir,
    One of the user is facing issues with receiving emails. I checked the mailbox properties and could see that MaxSendSize and MaxReceiveSize is 0bytes. It should be 10MB. I tried the below command but getting errors. Saw few other articles that said to change using adsiedit. But wanted to be sure before making any change. Please help.

    [PS] C:\Get-RemoteMailbox user | Set-Mailbox -MaxSendSize 10MB -MaxReceiveSize 10MB
    The pipeline was not run because a pipeline is already running. Pipelines cannot be run concurrently.
    + CategoryInfo : OperationStopped: (Microsoft.Power…tHelperRunspace:ExecutionCmdletHelperRunspace) [],
    PSInvalidOperationException
    + FullyQualifiedErrorId : RemotePipelineExecutionFailed

    Regards,
    SJ

  9. Cody

    This is very informative. I have not been able to find an answer to a related mailbox size question and am hoping to get some clarity. We want to migrate our users to Exchange Online. What happens if the size of a mailbox from the user happens to be greater than what EOL allows? Is this not possible?

    Thank you

    1. Avatar photo
      Paul Cunningham

      You should reduce the size of any mailbox that doesn’t fit within the size limits of Exchange Online.

  10. Omar

    Hi, my name is Omar, I´m live in Mexico City,
    s it is possible to change the limits on the console O365 in a hybrid scheme?

    1. Avatar photo
      Paul Cunningham

      The only way to change it for your Office 365 mailboxes is the method shown in the article above.

  11. Francisco Batista

    Hi Paul,

    First of all thank you for one more great article.

    One question related with office 365 Inbound connectors and message size limit. I have na Inbound Connector configured like shown below to allow mail relay, is it possible to define a message size limit for relayed messages?

    PS C:Usersfbatista> Get-InboundConnector * | Format-List

    RunspaceId : b8ad4e43-ea55-4f4e-b859-fea4ea460d56
    Enabled : True
    ConnectorType : OnPremises
    ConnectorSource : AdminUI
    Comment :
    SenderIPAddresses : {89.154.13.83, 195.23.154.183, 85.88.137.146}
    SenderDomains : {smtp:*;1}
    AssociatedAcceptedDomains : {}
    RequireTls : False
    RestrictDomainsToIPAddresses : True
    RestrictDomainsToCertificate : False
    CloudServicesMailEnabled : False
    TreatMessagesAsInternal : False
    TlsSenderCertificateName :
    AdminDisplayName :
    ExchangeVersion : 0.1 (8.0.535.0)
    Name : SMTP_relay
    DistinguishedName : CN=SMTP_relay,CN=Transport Settings,CN=Configuration,CN=Lusomedicamenta.onmicrosoft.com,
    CN=ConfigurationUnits,DC=EURPR01A002,DC=prod,DC=outlook,DC=com
    Identity : SMTP_relay
    Guid : e813dcc6-932b-4e3e-a8da-3a01677f5566
    ObjectCategory : EURPR01A002.prod.outlook.com/Configuration/Schema/ms-Exch-SMTP-Inbound-Connector
    ObjectClass : {top, msExchSMTPInboundConnector}
    WhenChanged : 15-01-2016 16:34:00
    WhenCreated : 16-01-2015 18:50:04
    WhenChangedUTC : 15-01-2016 16:34:00
    WhenCreatedUTC : 16-01-2015 18:50:04
    OrganizationId : EURPR01A002.prod.outlook.com/Microsoft Exchange Hosted
    Organizations/Lusomedicamenta.onmicrosoft.com – EURPR01A002.prod.outlook.com/Configurati
    onUnits/Lusomedicamenta.onmicrosoft.com/Configuration
    Id : SMTP_relay
    OriginatingServer : AMSPR01A002DC03.EURPR01A002.prod.outlook.com
    IsValid : True
    ObjectState : Unchanged

    Thanks in advance

    Best regards

  12. Tabitha

    Is there any way to change the attachment size limit? I’m able to change the message size just fine (thanks for the PowerShell wisdom!) but my user is trying to send multiple attachments which reach over the 35 MB limit.

    1. Avatar photo
      Paul Cunningham

      The size limit is enforced on the overall message size, not the size of individual attachments.

      1. Cesar Leon

        Paul, This is an Excellent Post!! I will echo Mark’s comments as I too was not aware of MailboxPlans!

        Thank you and keep up the great work.

        Cesar

  13. Mark Minasi

    Paul, this piece was spot-on! As an O365 guy who’s never been an Exchange black belt AND someone with Business Essentials, which lacks an awful lot of things Exchange admin-wise, I started playing around to see if I could do this sort of thing in Exchange Online with PowerShell. I’d figured out how to make the limits larger on particular accounts, but it didn’t work because I didn’t know about mailbox plans… so thanks!

    One note that your readers might know and I only found out by experimentation: if you make a change to YOUR message sizes, kill Outlook and restart it to try the new sizes out, or it’ll block you. It seems to read max send/receive size once upon startup and then not again in the session. (And of course you probably know that Outlook doesn’t really shut down, so a “kill -name Outlook” is needed to see the changes. Thanks again!

  14. John Wilkinson

    You’ve not addressed the ability to manage the size limits when sending to distribution groups.
    The ‘Limit sending messages to large distribution group’ value is 5,000.
    The ‘Maximum message size for large distribution groups’ value is 2mb.
    That’s a potential 10gb delivery loading from just one email. So, how do we reduce this limit ?

    1. Avatar photo
      Paul Cunningham

      Those limits are not configurable.

      Are you concerned about bandwidth utilization?

Leave a Reply