There are many paid for ways to import a PST file into Microsoft 365/ Office 365 / Outlook 365 but follow along for the way to do it without any additional software costs – the catch is that it is slower and more difficult to use this method than to pay for something like BitTitan. Note that before you attempt this method you should consider the option to do a direct migration from the old provider without a PST export if you have the ability to do so using the 365 migration wizard.
NOTE: Starting 2025 Microsoft will retire some of the functions below including Powershell commands shown here.
TIP: Watch out for mailboxes with more than 50 folders. They can be extremely slow, can fail to import and cause all kinds of problems. In classic Outlook the folders can in fact be missing/hidden but will show in Web Outlook or Outlook New with other caveats. Mailboxes with over 100 folders are technically over the limit but we have imported ones that are up to 160 with some effort. Its best to reduce or remove folders before starting.
Also note that it is ideal to import and check all mail prior to terminating the old service.
If there is an export/import failure, you want to have access to the old system but lock users out to stop them causing problems.
Pre-read this page completely 24 to 48hrs before starting. There is important prep work to be completed.
The fastest way to export all mail is to use Google Takeout and then to convert the MBOX export into a PST using something like Bitrecover.
TIP: We found MailStore to be much faster in downloading and exporting PST files but it will combine any sub-folders into the main inbox folder. The software is really good for archiving but works great for this purpose too. Note that the imported folder will be in a sub folder called Mailstore which you need to manually import into a selected folder or drag the inbox/sent/folders into the correct location.
At this point you should have a large PST file or multiple. Maybe you used Outlook 365 to sync the Google mail or any other mail and exported to PST or you used another method. IMPORTANT: If you used Outlook to sync the old mail before export ensure you set to “sync all” email (not 1 year as per default) via the outlook account settings.
TIP: It will save a lot of time if you empty the trash and delete anything that is not required before doing the PST export.
Important: The maximum PST size imports is 20GB. If you mailbox is bigger – you will need to split with advanced techniques.
If any individual emails are bigger than the default 35MB size then you need to adjust this in the admin interface up to 150MB.
Step 1: Add a Role to allow the Import Export function to work by going to the following link:
https://admin.exchange.microsoft.com/#/adminRoles
Important: Note that it can take up to 24hrs for the Role to be active so do this in advance.
Assign the ‘Mailbox Import Export’ role in the ‘Manage Role Groups’
Now just add the system administrator to the Import Export role by clicking the bold ‘MailboxImportExport’ option and clicking ‘Assigned’.
If the ‘MailboxImportExport’ is missing from the list, you can try adding a custom group with MailImportExport added or go into Organization Management and tick the box there but it will take 1 to 24hrs to reflect in the microsoft account as functional!
Otherwise use this method via PowerShell for the official repair solution:
https://learn.microsoft.com/en-us/Exchange/permissions-exo/role-groups
https://learn.microsoft.com/en-us/powershell/exchange/exchange-online-powershell-v2?view=exchange-ps#install-and-maintain-the-exchange-online-powershell-module
Install-Module -Name ExchangeOnlineManagement
Y
Y
https://learn.microsoft.com/en-us/powershell/exchange/connect-to-exchange-online-powershell?view=exchange-ps
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline -UserPrincipalName admin@mydomain.onmicrosoft.com -DelegatedOrganization mydomain.onmicrosoft.com
https://learn.microsoft.com/en-us/Exchange/permissions-exo/role-groups
Step 2: Now go to the Microsoft Purview Portal / Compliance:
https://compliance.microsoft.com/ OR https://purview.microsoft.com/datalifecyclemanagement/import
On the left select : Data lifecycle management > Microsoft 365 > Microsoft 365 > Import
Using the “Import tab” now click the “+ New” import job.
Create a name for the task. Best to give it a useful name relating to the PST batch you are about to import.
On the Import Data page – Download the ‘Azure AzCopy’ tool first in option 3.
Put the tool in a useful location like C:\365\azcopy.exe
Open a Administrative ‘Command Prompt’ and change to the new folder you just created.
It is also useful to have the PST and CSV files you want to import in the same folder.
On the “Import Data” page – Copy down the ‘Show network upload SAS URL’ possibly into notepad with option 2.
IMPORTANT: DO NOT CLOSE THIS PAGE OR NAVIGATE AWAY
Now you can run the following commands to upload the PST files to the Azure Cloud Storage ready for the actual import.
azcopy.exe copy "<Source location of PST files>" "<SAS URL>"
Remember the SAS URL is the one provided on the web admin page.
EXAMPLE SINGLE PST:
azcopy copy "myexportedemail1backup.pst" "https://3cf5c18954ghy5sfa882e115.blob.core.windows.net/ingestiondata?sv=2015-01-05&sr=c&si=IngestionSasForAzCopy202801011449251568&sig=X4SP1DGER5V4Z3BwAV9sOvddykHVFAY%2FSCZcfBDA%3D&se=2028-01-21T11%3A27%3A05Z"
EXAMPLE MULTIPLE PSTs:
azcopy copy "*.pst" "https://3cf5c18954ghy5sfa882e115.blob.core.windows.net/ingestiondata?sv=2015-01-05&sr=c&si=IngestionSasForAzCopy202801011449251568&sig=X4SP1DGER5V4Z3BwAV9sOvddykHVFAY%2FSCZcfBDA%3D&se=2028-01-21T11%3A27%3A05Z"
Let all the files upload but remember to keep that admin web page open.
Step 3: (VERY OPTIONAL) You can view your uploads in the Azure Storage Explorer Tool here: https://go.microsoft.com/fwlink/p/?LinkId=544842
Start the Microsoft Azure Storage Explorer.
On the Select Resource page in the Connect to Azure Storage dialog, click Blob container.
On the Select Authentication Method page, select the Shared access signature (SAS) option, and then click Next.
On the Enter Connection Info page, paste the SAS URL that you obtained in Step 1 into the box under Blob container SAS URL, and then click Next. After you paste the SAS URL, the box under Display name is auto populated with ingestion data.
On the Summary page, you can review the connection information, and then click Connect.
The ingestion data container is opened. It contains the PST files that you uploaded in Step 2. The ingestion data container is located under Storage Accounts > (Attached Containers) > Blob Containers.
When you're finished using the Microsoft Azure Storage Explorer, right-click ingestion data, and then click Detach to disconnect from your Azure Storage area. Otherwise, you'll receive an error the next time you try to attach.
Step 4: Prepare the PST ‘Mapping’ CSV (Sometimes its useful to create this file before getting to this point)
Create a .CSV file with the PST file names and destination email addresses like this: (500 row limit)
Workload,FilePath,Name,Mailbox,IsArchive,TargetRootFolder,ContentCodePage,SPFileContainer,SPManifestContainer,SPSiteUrl
Exchange,,myexportedemail1backup.pst,whateveremail1@mydomainname.com,FALSE,/,,,,
Exchange,,myexportedemail2backup.pst,whateveremail2@mydomainname.com,FALSE,/,,,,
It is critical that the file has the correct number of , commas and identical header configuration.
You can do just one PST or multiple on this file. It will only process the PST files you list in this CSV – all others will be ignored.
Here is an example PST Import mapping file to download: https://go.microsoft.com/fwlink/p/?LinkId=544717
[It is possible to import the PST into the Outlook Archive box when settings the ‘IsArchive’ flag from FALSE to TRUE]
Step 5: Go back to the Microsoft Admin page and continue the ‘Import Data’.
Tick the “I’m done uploading my files” and “I have access to the mapping file”.
Follow the instructions and Save the job.
Step 6: When the status of the PST import on the webpage has changed to ‘Analysis Completed’ you can continue.
On the Import tab, click ‘Import to Microsoft 365’ – IMPORTANT STEP OFTEN MISSED.
Do any optional filtering – Sometimes filtering really old emails beyond say 5 years is a good idea.
Finally click ‘Import Data’ and then wait for it to auto complete.
The end.
Ref: https://learn.microsoft.com/en-us/purview/use-network-upload-to-import-pst-files