Microsoft Exchange Online (M365) Maximum Email Message Size Limits (Send and Receive)

Microsoft has announced that Office 365 (Exchange Online) now supports up to 150MB email messages, quite a large increase from the previous limit of 25MB. Within Exchange Online you don’t get the level of control you had on Microsoft Exchange on-premise servers, where you could configure the size limits on Organisation Wide transport configuration, Send/receive connectors, AD site links or individual recipients.

We have a standard configuration setting for maximum email message size across all components of the email infrastructure to avoid confusion and unexpected behaviour.

Note that there was some “fun” in relation to this in August 2026: https://www.reddit.com/r/sysadmin/comments/1vybq8t/exo_new_mailboxes_provisioned_with_150_kb_and/, where these issues: EX1454589 and EX1454202 affected provisioning of new mailboxes during a window of time, existing mailboxes did not have their limts changed, the mechanisms at work are decsribed below.

Organisation Wide Transport Limit

Microsoft have configured this to Unlimited, and we can’t change this, in effect this means their maximum supported, i.e. 150MB. All other changes are to be made on the mailboxes themselves, and that is where Mailbox Plans come in.

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

MaxReceiveSize : Unlimited
MaxSendSize    : Unlimited

Mailbox Plan to Configure Default Email Maximum Message Size Limit

The settings configured on a Mailbox Plan are used when a new mailbox is created, its kind of like a template. We need to first ensure all of these are configured to our desired value first, so any new mailboxes will get this setting.

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

Name           : ExchangeOnline-bb0dc167-36ea-47e4-1234-3705f30c6d4d
MaxSendSize    : 35 MB (36,700,160 bytes)
MaxReceiveSize : 36 MB (37,748,736 bytes)
IsDefault      : False

Name           : ExchangeOnlineDeskless-3a21d409-ab6e-2134-baec-0a1a0e93a608
MaxSendSize    : 35 MB (36,700,160 bytes)
MaxReceiveSize : 36 MB (37,748,736 bytes)
IsDefault      : False

Name           : ExchangeOnlineEnterprise-cd77a389-95f8-1234-a2d4-aaa606ecff9a
MaxSendSize    : 35 MB (36,700,160 bytes)
MaxReceiveSize : 36 MB (37,748,736 bytes)
IsDefault      : True

Name           : ExchangeOnlineEssentials-2ef83bda-7171-1234-a823-5fddc3b0ba7a
MaxSendSize    : 35 MB (36,700,160 bytes)
MaxReceiveSize : 36 MB (37,748,736 bytes)
IsDefault      : False

These are all set to 35MB, we don’t want that.

Configure Maximum Send and Receive Size Limit

So to update each of the Mailbox Plans to say 60MB, we would do the following:

Set-MailboxPlan ExchangeOnline-bb0dc167-36ea-47e4-1234-3705f30c6d4d -MaxSendSize 60MB -MaxReceiveSize 60MB
Set-MailboxPlan ExchangeOnlineDeskless-3a21d409-ab6e-1234-baec-0a1a0e93a608 -MaxSendSize 60MB -MaxReceiveSize 60MB
Set-MailboxPlan ExchangeOnlineEnterprise-cd77a389-95f8-43af-1234-aaa606ecff9a -MaxSendSize 60MB -MaxReceiveSize 60MB
Set-MailboxPlan ExchangeOnlineEssentials-2ef83bda-7171-4bd5-1234-5fddc3b0ba7a -MaxSendSize 60MB -MaxReceiveSize 60MB

Then check again with:

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


Name           : ExchangeOnline-bb0dc167-36ea-47e4-1234-3705f30c6d4d
MaxSendSize    : 60 MB (62,914,560 bytes)
MaxReceiveSize : 60 MB (62,914,560 bytes)
IsDefault      : False

Name           : ExchangeOnlineDeskless-3a21d409-ab6e-45b9-1234-0a1a0e93a608
MaxSendSize    : 60 MB (62,914,560 bytes)
MaxReceiveSize : 60 MB (62,914,560 bytes)
IsDefault      : False

Name           : ExchangeOnlineEnterprise-cd77a389-95f8-43af-1234-aaa606ecff9a
MaxSendSize    : 60 MB (62,914,560 bytes)
MaxReceiveSize : 60 MB (62,914,560 bytes)
IsDefault      : True

Name           : ExchangeOnlineEssentials-2ef83bda-7171-4bd5-1234-5fddc3b0ba7a
MaxSendSize    : 60 MB (62,914,560 bytes)
MaxReceiveSize : 60 MB (62,914,560 bytes)
IsDefault      : False

Good job.

Update Exchange On-Premise Send Connector

The configuration for the on-premise Send Connector (going to M365) is just a case of updating the maximum value here:

You do not need to update the Microsoft Exchange Online end, infact you can’t, you do not have the authoritar, Microsoft control this.

Check and Remediate (if required) Existing Mailboxes

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

Check Individual Mailbox

To check an individual mailbox:

Get-Mailbox Bob.Smith | fl mailboxplan,maxsendsize,maxreceivesize

And we can see the below, it just so happens that because this is an existing mailbox, the settings change to the Mailbox Plan has not changed anything.

PS U:\> Get-mailbox "Bob Smith" | fl mailboxplan,maxsendsize,maxreceivesize

MailboxPlan    : ExchangeOnlineEnterprise-cd77a389-95f8-43af-1234-aaa606ecff9a
MaxSendSize    : 58.59 MB (61,440,000 bytes)
MaxReceiveSize : 58.59 MB (61,440,000 bytes)

Check All Mailboxes

Unless you are a mentalist, you’ll want this to be exported to a CSV. The below exports all the user mailboxes to a CSV with the settings. You may want to add some additional fields like username.

Get-Mailbox -ResultSize Unlimited | select Displayname,mailboxplan,maxsendsize,maxreceivesize | Export-Csv "C:\mailbox_report.csv" -NoTypeInformation

We can see some (user) mailboxes are indeed set to 35MB rather than the expected 58-60MB.

Note that the Discovery Mailbox does not have Mailbox Plan specified.

Remediate Individual Mailbox

So say to set the Bob Smith mailbox to 60MB, we can just run:

Set-Mailbox Bob Smith -MaxReceiveSize 60MB -MaxSendSize 60MB

And verify:

PS U:\> Get-mailbox "Bob Smith" | fl mailboxplan,maxsendsize,maxreceivesize

MailboxPlan    : ExchangeOnline-bb0dc167-36ea-47e4-b38b-3705f30c6d4d
MaxSendSize    : 60 MB (62,914,560 bytes)
MaxReceiveSize : 60 MB (62,914,560 bytes)

Remediate All Mailboxes

To set all the mailboxes to 60MB, you would do the following, notice in this case ensuring we are not updating the “Discovery Search Mailbox” that in our case was set to 100MB.

Get-Mailbox -Resultsize Unlimited | Where-Object {$_.DisplayName -ne "Discovery Search Mailbox"} | Set-Mailbox -MaxReceiveSize 60MB -MaxSendSize 60MB

Now verify the changes have been made as expected across all. You may want to add some additional fields like username.

Get-Mailbox -ResultSize Unlimited | select Displayname,mailboxplan,maxsendsize,maxreceivesize | Export-Csv "C:\mailbox_report.csv" -NoTypeInformation

Additional Information/Further Reading

Leave a comment