Copy Emails from one Mailbox to Another in Office 365: [4-Ways]

You may need to switch from one mailbox to another by copying all emails from the old mailbox to the new one. If only certain emails are relevant or important to you, you can selectively choose the emails you want to copy to the new mailbox.

Another scenario could involve consolidating multiple mailboxes into one and subsequently deleting the old mailboxes. Whatever the reason may be, copying emails from one mailbox to another in Office 365 is a common task that can be accomplished in a few simple steps.

The source mailbox can be either a user mailbox or a shared mailbox, and the destination mailbox can also be either a user mailbox or a shared mailbox. While we will primarily use PowerShell, I will also demonstrate a method to copy emails using Outlook.

Option 1 – Copy emails using Search-Mailbox

The PowerShell cmdlet Search-Mailbox is a powerful tool in Office 365, enabling you to search for and manage mailbox content. This versatile cmdlet can be employed to find and delete specific emails, as well as to copy or move emails between mailboxes.

It is especially valuable for compliance and legal purposes, empowering administrators to search for and preserve emails relevant to legal or regulatory investigations. However, it is crucial to exercise caution when using ‘Search-Mailbox’, as improper usage may result in the unintentional deletion of important emails.

Required permissions to run Search-mailbox cmdlet

To run the Search-Mailbox cmdlet, you must have either the Mailbox Search or Mailbox Import-Export role. Without these permissions, you may encounter the following error message.

Error
Search-mailbox: The term ‘Search-mailbox’ is not recognized as the name of a cmdlet, function, script file, or
operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try
again.
At line:1 char:1
Search-mailbox
~~~~~~ CategoryInfo : ObjectNotFound: (Search-mailbox:String) [], CommandNotFoundException
FullyQualifiedErrorId: CommandNotFoundException
Search-Mailbox is not recognized as the name of the cmdlet
The term ‘Search-mailbox’ is not recognized as the name of a cmdlet

1. Add admin user to Discovery Management Role Group

You can add the administrator account to the Discovery Management role group using either the Exchange admin center or PowerShell. Let’s explore both methods.

1.1 Using Exchange admin center
  1. Log in to the Microsoft Exchange admin center.
  2. Navigate to Roles > Admin roles.
  3. Locate the Discovery Management Role group and click on it.
  4. Go to the Assigned tab.
  5. Click on the + Add button.
  6. Add the administrator account here.
Add admin user to Discovery Management Role Group
Add user to Discovery Management who is going to run Search-Mailbox cmdlet
1.2 Using Powershell

To add an administrator account to the Discovery Management role group using PowerShell, you first need to install the Exchange Online Management PowerShell module and then connect to Exchange Online. Let’s go through the steps.

Install Exchange Online Powershell Module

Install-module -Name ExchangeOnlineManagement

Connect to Exchange Online

Connect-ExchangeOnline

For Example: To add [email protected] to the Discovery Management Role group, you can use the following PowerShell command:

Example:

Add-RoleGroupMember -Identity "Discovery Management" -Member [email protected]

2. Add an Admin user to the Mailbox Import-Export role group

To add an admin user to the Mailbox Import-Export role group, you can use the following PowerShell cmdlets. First, create a new role group called ‘Mailbox Import-Export Mgmt,’ and then add the admin user to this role group.

Create a new role group for Mailbox Import Export Permission

New-RoleGroup "Mailbox Import-Export Mgmt" -Roles "Mailbox Import Export"

Example: Add admin user [email protected] into the Mailbox Import-Export Mgmt role group

Add-RoleGroupMember "Mailbox Import-Export Mgmt" -Member [email protected]
Add admin user to Mailbox Import-Export role group
Add an Admin user to the Mailbox Import-Export role group

Finally, Use the Search-Mailbox cmdlet to Copy emails

Now with administrator permissions assigned, we can use the Search-Mailbox cmdlet to copy emails from one mailbox to another user’s mailbox.

  • Source Mailbox – GradyA@techpress
  • Destination Mailbox – NestorW@techpress
  • Emails to copy – All

If you have already installed the Exchange Online PowerShell module and connected to Exchange Online, you can skip the commands for the same. However, if you have not connected to Exchange Online yet, please run the following commands.

Install Exchange Online Powershell Module

Install-module -Name ExchangeOnlineManagement

Connect to Exchange Online

Connect-ExchangeOnline

Copy All emails of GradyA to the NestorW mailbox in a new folder GradyA-Emails

Search-Mailbox -Identity "[email protected]" -TargetMailbox "[email protected]" -TargetFolder "GradyA-Emails"
Finally, Use the Search-Mailbox cmdlet to Copy emails
Finally, Use the Search-Mailbox cmdlet to Copy emails
Use Search-Mailbox cmdlet to copy emails
Finally, Use the Search-Mailbox cmdlet to Copy emails

As we can see, all emails from Grady A’s user mailbox have been copied to Nestor W’s mailbox in a separate folder called ‘GradyA-Emails.’ The folder structure is as follows: TargetFolder\User Name-Date and time of the search\Primary Mailbox\Inbox.

Nestor W destination mailbox
Finally, Use the Search-Mailbox cmdlet to Copy emails

Option 2 – Copy emails using New-ComplianceSearchAction

You cannot directly copy the emails across to the target mailbox using the New-ComplianceSearchAction cmdlet. However, you can export the search results to a PST file and then import the PST.

Before using the New-ComplianceSearchAction cmdlet to export emails, we need to search for the emails using the New-ComplianceSearch cmdlet. To run the New-ComplianceSearch cmdlet, you must connect to the Security & Compliance Center using the PowerShell cmdlet Connect-IPPSSession.

To export emails using PowerShell, the Administrator account must be added to the eDiscovery Manager role group. Please follow the steps below to assign the eDiscovery Manager role to the admin account who will perform the export.

Copy emails using New-ComplianceSearchAction
Copy emails using New-ComplianceSearchAction
  • Find eDiscovery Manager in the list and click on it then click on Edit role group.
Copy emails using New-ComplianceSearchAction
Copy emails using New-ComplianceSearchAction
  • Click on the “Choose eDiscovery Manager” option and then select the “Choose eDiscovery Manager” link.
Copy emails using New-ComplianceSearchAction
Copy emails using New-ComplianceSearchAction
  • Click on +Add to add your admin account here. Search for the administrator account and add it to the eDiscovery Manager role group then Save and exit.
Copy emails using New-ComplianceSearchAction
Copy emails using New-ComplianceSearchAction

Now that we have assigned the administrator to the eDiscovery Manager role group, we will proceed with running the following PowerShell commands to carry out this task.

Connect to the Security & Compliance Center

Connect-IPPSSession

Create a New Compliance Search

New-ComplianceSearch -Name <Search Name> -ExchangeLocation <Source Mailbox> -ContentMatchQuery <Search Query>

Example of New-ComplianceSearch

New-ComplianceSearch -Name GradyAMails -ExchangeLocation [email protected]

Start the Search

Start-ComplianceSearch -Identity <Search Name>

Example of Start-ComplianceSearch

Start-ComplianceSearch -Identity GradyAMails

Check the Status of Compliance Search

Get-ComplianceSearch -Identity <Search Name>

Example of Get-ComplianceSearch

Get-ComplianceSearch -Identity GradyAMails
Copy emails using New-ComplianceSearchAction
Copy emails using New-ComplianceSearchAction

Export the search results using New-ComplianceSearchAction

New-ComplianceSearchAction -SearchName GradyAMails -Export -ExchangeArchiveFormat PerUserPST
Copy emails using New-ComplianceSearchAction
Copy emails using New-ComplianceSearchAction

Download the Results from Microsoft Purview portal

Now, you need to download the results from the Microsoft Purview Portal. According to my research, there is no command available to download the results directly from PowerShell. Therefore, we must download the results using the GUI.

  1. Log in to the Microsoft Purview Portal using Microsoft Edge.
  2. Navigate to the left-hand side and locate “Content Search” then click on it. Next, select the “Export” tab.
  3. Choose the export named “GradyAMails_Export” and click on it. Subsequently, click on “Download results“.
  4. Once the PST file is downloaded, you can proceed to import it using Outlook into any desired mailbox based on your requirements.
Download the Results from Microsoft Purview portal
Download the Results from Microsoft Purview portal

Option 3 – Copy Emails from one mailbox to another using Outlook

You can also utilize Outlook to copy emails from one mailbox to another by granting full mailbox access (Read and Manage) to the user. For instance, if you wish to copy emails from Grady A to Nestor W, provide Nestor W with full mailbox access to the Grady A mailbox.

You can use PowerShell or the Exchange Admin Center to grant full mailbox permissions to NestorW on GradyA’s mailbox. Let’s explore both methods:

Using Exchange Admin Center

  1. Log in to the Exchange Admin Center.
  2. Navigate to Recipients > Mailboxes.
  3. Locate the user “Grady Archie” and click on it.
  4. Go to the Delegation tab.
  5. Click on “Edit” next to “Read and manage (Full Access).”
  6. Click on “+ Add members” to add Nestor W and provide him with Full Mailbox access to Grady A’s mailbox.
Copy Emails from one mailbox to another using Outlook
Copy Emails from one mailbox to another using Outlook

Using Powershell

You can also use PowerShell to grant full mailbox access to Nestor W. Let’s go through the steps and commands for this:

Launch the PowerShell console as Administrator and execute the following commands:

Install Exchange Online Powershell Module

Install-module -Name ExchangeOnlineManagement

Connect to Exchange Online

Connect-ExchangeOnline

Provide Full mailbox access to NestorW on GradyA’s mailbox

Add-MailboxPermission -Identity [email protected] -User [email protected] -AccessRights FullAccess -InheritanceType All -AutoMapping $true
Copy Emails from one mailbox to another using Outlook
Copy Emails from one mailbox to another using Outlook

Finally, Use the Below Steps to Copy Emails Using Outlook

As we specified -AutoMapping $true when granting full mailbox permission to NestorW on GradyA’s mailbox, upon restarting Outlook, Grady Archie’s mailbox will automatically appear in Nestor W’s Outlook.

Steps to copy emails using Outlook
Finally, Use the Below Steps to Copy Emails Using Outlook
  • Navigate to Grady Archie’s Inbox or any other folder with the desired emails.
  • Select all the emails you wish to copy.
  • Press Ctrl + C on the keyboard to copy the emails.
  • Go to Nestor W’s mailbox and choose the folder where you want to paste the emails.
  • Press Ctrl + V on the keyboard to paste the emails.
You can also drag emails from Grady Archie’s mailbox to NestorW’s mailbox. While dragging to the destination folder, keep holding the Ctrl key on the keyboard to copy the emails; otherwise, the emails will be moved instead of getting copied.

Option 4 – Copy Emails from One Mailbox to another using Bittitan MigrationWiz

The final option for copying emails from a source mailbox to a target/destination mailbox is Bittitan MigrationWiz. As a third-party solution, it comes with associated costs. You’ll need to purchase a license for each user mailbox move from Bittitan and use it to copy the emails across.

The advantage of Bittitan MigrationWiz is that it allows you to copy emails from the same source folder to the same destination folder. For example, it will copy emails from the source Inbox folder to the Inbox folder in the destination, the source Sent Items folder to the Sent Items folder in the destination, and any other user-created folders will also be replicated with emails copied accordingly.

MigrationWiz aims to preserve the same folder structure as in the source and simply copies the emails to the destination. You can monitor the progress and obtain statistics on the dashboard. I’ve frequently used this tool, and it proves highly effective for large-scale migrations.

Conclusion

In this blog post, we explored various methods for copying emails from one mailbox to another. While the Search-Mailbox cmdlet proves very useful, it does not support copying emails directly into the same folders as the source (e.g., Inbox to Inbox or Sent Items to Sent Items). Instead, the Search-Mailbox cmdlet copies the emails to a separate folder in the target mailbox.

In such scenarios, Bittitan MigrationWiz can be employed. Additionally, we explored how to move or copy emails to another mailbox using Outlook. Utilizing Outlook for copying emails provides the advantage of being able to select a specific folder for copying, which is not possible with the Search-Mailbox cmdlet.

Leave a Comment