Field note: replacing a public folder with a shared mailbox, without changing the address
A public folder's contents went out to a PST and into a new shared mailbox, and the old address moved across with it. Here's the order that worked and what to check before you start.
A public folder at a small office needed to become a shared mailbox, and its address needed to move with it. The contents went out to a PST and into the new mailbox, the old address and aliases moved across, and it worked.
Here’s the sequence, plus the details from Microsoft’s documentation worth checking first if you’re doing this in Exchange Online.
The sequence
- Export the public folder’s contents to a PST.
- Import the PST into a new shared mailbox. The content is in place before any mail moves.
- Move the old address onto the shared mailbox as its primary SMTP address, along with the old aliases.
- Test mail flow with a message trace instead of trusting that a test message showed up.
The order is the point of it. The address moves last, once the mailbox already holds the history.
Why the address has to come off the public folder first
In Exchange Online, a proxy address can be assigned to only one object at a time. A mail-enabled public folder counts as one of those objects, so the shared mailbox can’t take the address while the folder still has it. Microsoft’s troubleshooting article for this conflict uses Disable-MailPublicFolder to free the address.
To see what’s holding an address:
Get-EXORecipient -ResultSize Unlimited |
Where-Object {$_.EmailAddresses -match "[email protected]"} |
Format-List Name, RecipientType, EmailAddresses
And to mail-disable the folder, using its own path:
Disable-MailPublicFolder -Identity "\Office"
That’s the moment mail to the folder’s address stops being handled by the folder, so have the next step ready and do it during a quiet time.
Set up the shared mailbox before the cutover
You can create one in the admin center or in PowerShell. This is trimmed down from Microsoft’s example, with your own names swapped in:
New-Mailbox -Shared -Name "Office" -DisplayName "Office" -Alias officeshared
Once the address is free, make it the primary on the shared mailbox. In the Exchange admin center, the mailbox’s email address list shows the default reply address in bold, so you can see at a glance which one is primary. Adding an old alias back on is one line:
Set-Mailbox -Identity "Office" -EmailAddresses @{add="[email protected]"}
Then give people access. Microsoft says a shared mailbox needs both Full Access and Send As to work properly. Full Access alone lets someone read the mail but not send from the mailbox.
Add-MailboxPermission -Identity "Office" -User "[email protected]" -AccessRights FullAccess -InheritanceType All
Add-RecipientPermission -Identity "Office" -AccessRights SendAs -Trustee "[email protected]"
Check these before you commit
- Size. A shared mailbox holds up to 50 GB without a license. At the limit it stops being able to send and eventually stops receiving. Going to 100 GB needs Exchange Online Plan 2, so look at how big the public folder is before you export it.
- Who needs in. Only people in your organization can use a shared mailbox. Anyone outside can’t be given access.
- Sign-in. A shared mailbox isn’t meant for direct sign-in, and Microsoft says to keep sign-in blocked on its account.
Test it with a message trace
A test message landing in the mailbox only tells you about that one message. A trace shows what Exchange did with it. In the Exchange admin center it’s under Mail flow > Message trace, or from PowerShell:
Get-MessageTraceV2 -RecipientAddress [email protected] -StartDate "11/03/2026 9:00 AM" -EndDate "11/03/2026 5:00 PM"
Get-MessageTraceV2 replaces the older Get-MessageTrace, which Microsoft says will eventually be deprecated. Times in its output are in UTC, and status can lag the real delivery by 5 to 10 minutes, so don’t panic over a message that isn’t there yet.
Send to the primary address and to each alias. Each one is a separate thing that can be wrong.
What I took away from it
- Move the content first and the address last. Then the mailbox is ready the moment mail starts landing in it.
- The address is the real migration. The PST is the easy part. What people notice is whether their mail still arrives.
- Keep every old alias. The old ones are the addresses you’ve forgotten about, not the ones you’d think to test.
- Prove it with a trace. Check the primary address and every alias, not just the one you’d think to try.
Sources
- Microsoft Learn: Shared mailboxes in Exchange Online: creating them, the
New-Mailbox -Sharedexample, and Full Access versus Send As - Microsoft Learn: About shared mailboxes: the 50 GB limit, Plan 2, no outside access, and keeping sign-in blocked
- Microsoft Learn: Proxy address conflict when adding an email address: one address per object, finding the holder with
Get-EXORecipient, and freeing it from a public folder - Microsoft Learn: Mail-enable or mail-disable a public folder and Disable-MailPublicFolder
- Microsoft Learn: Add or remove email addresses for a mailbox: the
@{add=...}syntax - Microsoft Learn: Add-RecipientPermission and Add-MailboxPermission
- Microsoft Learn: Message trace in the new EAC, Get-MessageTraceV2, and Get-MessageTrace: the menu path, reporting delay, UTC output, and the replacement notice
From Small Town Sysadmin
Get new guides by email
Plain-English tech tips, scam and security alerts, and fixes for small offices, whether you're the office manager or the IT pro. No spam, and you can unsubscribe anytime.