ConfigureIntermediateTutorialsUpdated July 14, 2026

How to Import PST Files into Exchange Online in Microsoft 365

Import PST archive files into Exchange Online mailboxes using network upload through the Microsoft Purview portal, AzCopy, and CSV mapping files for bulk email migration.

Emanuel De Almeida July 14, 2026 13 min read
Difficulty
Intermediate
Time
30 minutes
Steps
7

Microsoft 365's PST import service lets administrators move PST archive files directly into Exchange Online mailboxes through the Microsoft Purview portal. The network upload method uses AzCopy to transfer PST files to a temporary Azure Storage location, then Microsoft's import engines process the data into the target mailboxes.

This approach is faster and more reliable than having individual users import PST files through Outlook. It supports both primary and archive mailboxes, handles multiple PST files per job, and preserves the original folder structure. You can also filter by date range to import only recent data.

The process requires two Exchange Online roles (Mailbox Import Export and Mail Recipients), the AzCopy tool for uploading, and a CSV mapping file that tells the import service which PST file goes into which mailbox. This tutorial covers every step, from role assignment through verification of imported data.

Before you start

What you will learn

  • You'll learn how to bulk-import PST files into Exchange Online mailboxes using the network upload method through Microsoft Purview, including role assignment, AzCopy upload, CSV mapping file creation, and import job monitoring.
  • Organizations migrating to Microsoft 365 often have years of email data in PST files. The Purview import service provides a centralized, secure way to move this data into Exchange Online without individual users importing files through Outlook.

Requirements

  • Access to the Microsoft Purview portal and Exchange Admin Center. You need the Mailbox Import Export and Mail Recipients roles assigned in Exchange Online.
  • AzCopy v10 installed on a Windows machine. PST files from Outlook 2007 or later. Target mailboxes must exist in Exchange Online.
  • Mailbox Import Export (Exchange Online)
  • Mail Recipients (Exchange Online)

Good to know

  • Setup takes about 30 minutes. Upload time depends on PST size and bandwidth. Microsoft's import processing can take 24 to 48 hours for large datasets.
  • Steps verified against current Microsoft Learn documentation for PST import via network upload, updated June 2026.

Quick answer

Assign the Mailbox Import Export and Mail Recipients roles in Exchange Online. In the Microsoft Purview portal, create an import job and copy the SAS URL. Use AzCopy to upload your PST files to Azure Storage. Create a CSV mapping file with the required columns (Workload, FilePath, Name, Mailbox, IsArchive, TargetRootFolder). Upload the CSV, validate, and submit the import job. Microsoft processes the import within 24 to 48 hours.

Microsoft Purview portal > Data lifecycle management > Microsoft 365 > Import
Code
azcopy copy "C:\PST_Files" "<SAS_URL>" --recursive

Step-by-step tutorial

7 steps
1

Assign the Mailbox Import Export and Mail Recipients roles

Grant your admin account the required permissions to create import jobs.

Exchange Admin Center > Roles > Admin roles > Organization Management

Open the Exchange Admin Center. Click Roles > Admin roles. Find and click Organization Management. Click the Permissions tab, then add the Mailbox Import Export role. Save the changes.

Per Microsoft Learn, you also need the Mail Recipients role, which is already assigned to Organization Management by default. If using a custom role group, add both roles. Sign out and back into Microsoft 365 to see the Import option in Purview.

PowerShell
New-ManagementRoleAssignment -Role "Mailbox Import Export" -SecurityGroup "Organization Management"
Expected resultMailbox Import Export role is assigned. After re-login, the Import option appears in the Purview portal.

Per Microsoft Learn, consider creating a dedicated role group for PST imports rather than adding the role to Organization Management. This limits who can create import jobs.

2

Create a new import job in Microsoft Purview

Set up the import job and obtain the Azure Storage SAS URL for uploading.

Purview portal > Data lifecycle management > Microsoft 365 > Import

In the Microsoft Purview portal, go to Data lifecycle management > Microsoft 365 > Import. Click Import PST files, then New import job. Enter a descriptive name and click Next.

Select Upload your data and click Next. Click Show network upload SAS URL. Copy this URL to a secure text file. Keep this browser tab open for later steps.

Expected resultYou have a SAS URL copied. The URL contains blob.core.windows.net and a signature parameter.

The SAS URL expires after a set period. Generate a new one from the same page if it expires. Network upload is free per Microsoft Learn.

3

Upload PST files using AzCopy

Transfer PST files to Azure Storage using AzCopy and the SAS URL.

Download AzCopy v10 from Microsoft or use the link on the Purview import page. Extract it to a folder like C:\AzCopy. Gather all PST files into a single folder (e.g. C:\PST_Files). Keep individual files under 20 GB for best performance.

Open Command Prompt as administrator and run: azcopy copy "C:\PST_Files" "<YOUR_SAS_URL>" --recursive. The --recursive flag preserves subfolder structure. AzCopy displays real-time progress and transfer statistics.

Cmd
azcopy copy "C:\PST_Files" "<YOUR_SAS_URL>" --recursive
Expected resultAzCopy shows Job completed with all files transferred and zero failures.

If uploads fail, check the log files in your user profile's .azcopy folder. Common causes: expired SAS URL, network interruptions, or firewall blocking Azure Storage endpoints. Don't delete local PST files until the import completes.

4

Create the PST import CSV mapping file

Build the CSV file that maps each PST file to its target Exchange Online mailbox.

Create a CSV with all 10 required columns per Microsoft Learn: Workload, FilePath, Name, Mailbox, IsArchive, TargetRootFolder, ContentCodePage, SPFileContainer, SPManifestContainer, SPSiteUrl. Set Workload to Exchange and leave SP columns empty.

The Name column is case-sensitive and must match the actual PST filename. Set IsArchive to TRUE for archive mailbox imports (user must have archive enabled). Set TargetRootFolder to / to merge into existing folders, leave blank for a new Imported folder, or specify a custom folder name.

Expected resultA properly formatted CSV file with all 10 columns, one row per PST file.

Enable archive mailboxes before import with: Enable-Mailbox -Identity "user@company.com" -Archive. Items larger than 150 MB within a PST are skipped. PST files with 300+ levels of nested folders can't be imported.

5

Upload the mapping file and validate

Upload the CSV mapping file and verify all entries are valid before submitting.

Purview portal > Import job > Mapping file upload

Return to the Purview import job. Confirm your files are uploaded, then click Next. Select your CSV mapping file and upload it. The system validates automatically, showing green checkmarks for valid entries and red errors for problems.

Fix any errors (invalid mailboxes, incorrect formatting, missing columns, disabled archive mailboxes) and re-upload until validation passes with zero errors.

Expected resultAll rows show green checkmarks. Validation summary shows zero errors.

Test with a pilot of 2 to 3 mailboxes first before running the full migration.

6

Submit the import job and start processing

Submit the job for analysis and then start the import into Exchange Online.

Purview portal > Import jobs > [your job] > Import to Office 365

Review the job summary and click Submit. The status changes to Analysis in progress. This phase takes several hours. Refresh the Import page to check status.

Once analysis completes, select the job and click Import to Office 365. Choose Import everything or filter by date. Click Submit to start the import. Processing typically takes 24 to 48 hours for large datasets.

Expected resultStatus progresses from Analysis in progress to Analysis completed, then In progress, and finally Completed.

Don't delete local PST files until the import shows Completed and you've verified the data. The Intelligent Import feature lets you filter items by date before importing.

7

Verify import completion and data integrity

Confirm all PST data was imported into the target mailboxes.

Purview portal > Import jobs > [your job] > Download report

Check the import job status in Purview. Completed status means the import finished. Download the completion report for item-level details including skipped items.

Verify data in target mailboxes: log into OWA as the user and check emails, calendar items, and contacts. For archive imports, open the archive mailbox. Test search to confirm imported items are indexed. Review the completion report for any items skipped due to the 150 MB limit or corruption.

Expected resultImport job shows Completed. Users can access imported email data through Outlook or OWA. Search returns results from imported content.

After verifying, configure retention policies for imported data if needed. Once confirmed, you can safely delete local PST files.

How to Confirm Your PST Import Was Successful

A successful import shows Completed status in Purview. The completion report provides item-level detail including imported and skipped counts.

Users can access imported data through Outlook or OWA immediately after completion. If TargetRootFolder was set to /, items merge into existing folders. If left blank, items appear in a new Imported folder at root level.

For archive imports, data appears in the online archive accessible through Outlook or OWA. Search indexing may take a few hours to complete.

Skipped items are reported individually. The most common reason is items exceeding the 150 MB Exchange Online message size limit.

  • Import shows Completed. Users access imported data in Outlook/OWA. Search works on imported content.
  • Import shows errors or items skipped. Check the completion report for item-level failures: 150 MB limit, corrupted entries, or non-existent mailboxes.
  • All items imported into target mailboxes.
  • Items exceeding 150 MB or with corruption were skipped.
  • Check mapping file, PST upload, and target mailboxes.

Troubleshooting

Import option not visible in Purview portal

Cause: Mailbox Import Export role hasn't propagated or wasn't assigned correctly.

Wait up to 24 hours after assigning the role. Sign out and back in. Verify the role assignment in Exchange Admin Center under Roles > Admin roles. You also need the Mail Recipients role.

AzCopy upload fails or times out

Cause: SAS URL expired, network interrupted, or firewall blocks Azure Storage.

Generate a new SAS URL from the import job page if expired. Check your firewall allows HTTPS to *.blob.core.windows.net. For unstable connections, upload in smaller batches.

CSV mapping validation fails with mailbox errors

Cause: Email addresses don't match existing mailboxes, or archive mailboxes aren't enabled.

Verify all email addresses match existing Exchange Online mailboxes. For archive imports, enable the archive first: Enable-Mailbox -Identity "user@company.com" -Archive. Ensure the CSV has all 10 required columns in the correct order.

Import job stuck at Analysis in progress

Cause: Large data volume or Microsoft-side service delays.

Wait up to 48 hours for very large datasets. If the status doesn't change after 48 hours, contact Microsoft support. Don't create a duplicate job.

Some items missing after import completes

Cause: Individual items exceeding 150 MB are skipped per Exchange Online limits. Corrupted PST entries are also skipped.

Download the completion report and review skipped items. For oversized items, reduce their size or use an alternative method. For corrupted entries, repair the PST with scanpst.exe and re-import.

Frequently asked questions

How long does PST import into Exchange Online take?

Upload time depends on PST size and bandwidth. Microsoft's processing typically takes 24 to 48 hours for large datasets. Smaller imports under 10 GB often complete within a few hours. The analysis phase alone can take several hours.

What is the maximum PST file size for import?

Per Microsoft Learn, PST files should ideally be no larger than 20 GB for performance. Individual items within a PST exceeding 150 MB are skipped due to Exchange Online's message size limit. Files with 300+ nested folder levels can't be imported.

Can I import PST files into archive mailboxes?

Yes. Set IsArchive to TRUE in the CSV mapping file. The user must have an online archive enabled first. You can also import to inactive mailboxes and to cloud-based archive mailboxes for on-premises users in hybrid deployments.

What columns are required in the PST import CSV?

The CSV must have 10 columns: Workload, FilePath, Name, Mailbox, IsArchive, TargetRootFolder, ContentCodePage, SPFileContainer, SPManifestContainer, SPSiteUrl. Set Workload to Exchange and leave SP columns empty. The Name column is case-sensitive.

What permissions do I need for PST import?

You need two Exchange Online roles: Mailbox Import Export (not assigned to any group by default, must be added explicitly) and Mail Recipients (assigned to Organization Management by default). Permission changes can take up to 24 hours.

Reader reviews

Rate this articleBe the first to rate
No written reviews yetRate the article above, or be the first to share your experience.

Related articles