We're in the process of moving a lot of users from a cPanel-based email server (dovecot server). Since cPanel-based email server does not support email aliases, multiple user accounts were created for the same person.
So, for example, John Doe had: [email protected], [email protected] and [email protected]. (Please don't ask me why they needed that many! lol)
Now, we'll be doing a mass transfer of all the email accounts from the dovecot server to Office 365/Exchange Online. So, each email will have a new account in Office 365. However, after the transfer we would like to merge all the email addresses for the same person, along with their emails, contacts and calendars, and then assign aliases.
How can this merging be achieved? (without using Outlook 2016 to copy each email account's mail box)
Depending on how you are doing your first migration, it might be better to just import/merge everything during that step, rather than importing to separate mailboxes and then merging them after the fact.
To answer the question: You could use several methods to copy data from each mailbox into the 'primary' one for the user:
https://docs.microsoft.com/en-us/powershell/module/exchange/mailboxes/search-mailbox?view=exchange-ps
Use the Compliance/eDiscovery search to export the data into a PST file: https://docs.microsoft.com/en-us/exchange/policy-and-compliance/ediscovery/export-results-to-pst?view=exchserver-2019
(N.B. If you're already exporting your data from your original server to PST files, you can use those.)
Then use the network upload / PST import part of the data migration facility to import that PST into the primary mailbox: https://docs.microsoft.com/en-us/office365/securitycompliance/use-network-upload-to-import-pst-files