[Update]: This post was updated on October 8, 2021 due to new archiving limits
Microsoft 365 (or to be more precise, Exchange Online) has certain mailbox size limits. Those limits depend on two variables: the subscription plan assigned to the mailbox and the mailbox type. This article shows what the maximum mailbox size is, how to increase mailbox size, how to check the current mailbox usage for all mailboxes and what to do to prevent mailboxes from reaching their size limit. You may find it useful if you’re planning to migrate from on-premises Exchange Server to Microsoft 365.
Max mailbox size in Microsoft 365
The maximum mailbox size for most mailboxes is 50 GB. There are some exceptions, though:
- User mailboxes’ size limit can be increased up to 100 GB if assigned a Microsoft 365 E3 or E5 license (Exchange Online Plan 2). An F3 (Kiosk) license includes only 2 GB of storage and it doesn’t provide archive mailboxes.
- Public folder mailboxes (in all subscription plans) have a limit of 100 GB.
- Shared mailboxes don’t require any license and have the standard, 50 GB size limit. However, when assigned an E3 or E5 license, they can store up to 100 GB of data.
- User and shared mailboxes’ storage space can be extended by an archive mailbox (In-Place Archive). Once the archiving feature is enabled, an archive mailbox is assigned to each mailbox separately. By default, an archive mailbox has the 50 GB storage limit, but there is an option to have nearly unlimited (automatically expanding) archiving space* thanks to an Exchange Online Plan 2 license, or an Exchange Online Plan 1 license with an Exchange Online Archiving add-on license. To enable archiving for a shared mailbox, either of the mentioned license types needs to be assigned.
* since November 1, 2021, Microsoft introduces limits for auto-expanding archives: max size of 1.5TB total and max growth rate of 1 GB per day. The word unlimited is now removed from their documentation. This information is based on MC288051 from the Microsoft 365 message center. It’s still a lot of space, considering it’s reserved for a single user. It’s not permitted to use journaling, transport rules or auto-forwarding for other mailboxes’ backup or archiving purposes.
Increase mailbox size in Microsoft 365
There are two ways to increase the max mailbox size for a user:
- Assign an Exchange Online Plan 2 license to the mailbox. This will increase the mailbox storage limit from 50 GB to 100 GB.
- Enable Exchange Online Archiving. Depending on your Microsoft 365 license, this will either give you additional 50 GB of space or nearly unlimited space with the auto-expanding archiving feature.
Increasing the maximum quota is not the only way to make more space available in mailboxes. It’s like with your standard hard drives – you can either get a new, larger one, or free up some of the used space. Exchange Online allows you to use retention policies to either retain or delete data automatically, based on the criteria you specify.
There are also 3rd party backup & archiving tools, like CodeTwo Backup for Office 365, which let you decrease the amount of data kept in the cloud. This way, you can retain data discoverability while preventing mailboxes from overloading.
Archiving in Microsoft 365
Archive mailboxes are attached to other mailboxes. Data stored in an archive mailbox is accessible and searchable by the user. For users to be able to access the shared mailbox’s In-Place Archive, they need to be assigned explicit FullAccess permissions to the shared mailbox. All the archived data can also be found with eDiscovery. It’s important to know that mailbox items from the primary mailbox do not flow automatically to the archives.
There are two ways to move such items to the archive mailbox – by either setting up an archiving policy or moving the items manually. An archiving policy is a type of retention policy. Retention policies can be set according to your organization’s needs to control your data. Mailbox items are assigned specific retention tags, according to which the oldest items are automatically moved to archive mailboxes or deleted.
As you probably know, litigation holds and retention policies allow your company to access data even after it has been purged from user or shared mailboxes. For example, emails deleted from the Deleted Items folder are moved to the Recoverable Items folder, which has its own quota. The Recoverable Items folder doesn’t count towards the primary mailbox limits.
Read more about retention policies and litigation holds
What is unlimited archiving?
Since November 1, 2021, unlimited archiving is no longer available in Microsoft 365. Now, the feature goes by its second name only: auto-expanding archiving. Currently, the limits for an auto-expanding archive are as follows:
- 1.5 TB total size,
- 1 GB max daily growth rate.
While those numbers are far from being “unlimited” it is a large quota for a single user. The second limit probably acts as a way to prevent the use of journaling and auto-forwarding since archiving is intended just for that user. If a mailbox is getting near the max archive limit, you will need to either clear some of its contents or use a third-party archiving solution. Auto-expanding archiving is available for mailboxes using Exchange Online Plan 2 or Exchange Online Plan 1 with an Exchange Online Archiving add-on license. It needs to be enabled, just like standard archive mailboxes. While this option gives users archives with a generous size limit, it doesn’t mean that they should stop cleaning up their mailboxes. Storage of 1.5 TB sounds fun until a user needs to find a specific email.
How to check mailbox size in Microsoft 365
Now, of course, you can use the Exchange admin center to check mailbox usage of a certain person:
But if you want to check mailbox size for all mailboxes (including Shared mailboxes and resource mailboxes), it is far easier to use PowerShell:
First, Connect to Exchange Online via PowerShell.
Then, you can download the current mailbox data into a variable, using the following cmdlet:
$exomailboxsize = (Get-EXOMailbox | Get-EXOMailboxStatistics)
Afterwards, you can, for example, sort the mailboxes according to their size:
$exomailboxsize | select DisplayName, TotalItemSize | sort -Property TotalItemSize -Descending
And if there are any mailboxes nearing their maximum size, you can take some steps to increase their limits or free up some of the space.
Enable archive mailboxes
You can enable archive mailboxes using the Exchange admin center:
Or via PowerShell.
To enable archive mailbox for a specific user or shared mailbox, use the following cmdlet:
Enable-Mailbox -Identity mailbox -Archive
You can easily check which mailboxes already have the archiving feature enabled by using:
And to turn on auto-expanding archiving, use the following command:
Enable-Mailbox -Identity user -AutoExpandingArchive
10 thoughts on “Mailbox size in Microsoft 365 (Office 365)”
At minimum, you will need to purchase MS 365 or E3 and this will also offer Unlimited storage for One-drive and access to all apps.
And how about when turning first the Exchange Online Plan 1 off in the detailed apps section in the User licenses?
A mailbox without an Exchange Online license cannot be accessed and needs to get a license back within 60 days (Source). Theoretically, it still has the same limit it had before unassigning the license, but it cannot be accessed by the user and returns NDRs when emailing it.
Although I have 365, my outlook files are stored on my local machine and I am frequently reaching my maximum storage limit and must delete files I do not want to delete. Can I increase the maximum limit in this situation?
If you’re keeping a local copy of that many items, the least problematic option will be archiving PST files and moving those archives to a location which has enough space.
You cannot add the Exchange Online Plan 2 license to an account if their current License contains Exchange Online Plan 1.
At minimum, you will need to purchase MS 365 E3 or O365 E3 and this will also offer Unlimited storage for OneDrive and access to all apps.
I ran the command below and no information was returned, am I doing something wrong?
$exomailboxsize = (Get-EXOMailbox | Get-EXOMailboxStatistics)
This short cmdlet saves information into a variable (array). You can see its content by writing
$exomailboxsizeinto the console and hitting enter.
When you have an auto-expanding mailbox archive, is the “archive” stored in Azure, or is it local to the user’s machine?
It’s stored in an Exchange Online, in an archive mailbox, not locally.
CodeTwo sp. z o.o. sp. k. is a controller of your personal data.