Skip to main content

How to Migrate Email to Microsoft 365

A step-by-step guide to migrating email from any provider to Microsoft 365 Exchange Online. Covers cutover migration, staged migration, and IMAP migration methods.

7 min readUpdated March 29, 2026

Overviewsection

Migrating email to Microsoft 365 is one of the most common projects for businesses moving to the cloud. The process varies depending on your current email provider, but Microsoft provides built-in tools that handle most of the heavy lifting.

This guide covers the three main migration methods, when to use each, and the critical DNS and security steps after migration.

Which Migration Method Should You Use?section

Current ProviderMethodBest For
On-premises Exchange ServerCutover migrationUnder 150 mailboxes, migrate all at once
On-premises Exchange ServerStaged migrationOver 150 mailboxes, migrate in batches
Google Workspace (Gmail)Google Workspace migrationBuilt-in tool in M365 admin center
Any IMAP provider (GoDaddy, Rackspace, Zoho, etc.)IMAP migrationWorks with any email provider that supports IMAP
Another Microsoft 365 tenantCross-tenant migrationMergers, acquisitions, rebranding

Pre-Migration Checklistsection

Before starting any migration:

  1. Verify licences — every user needs a Microsoft 365 licence with Exchange Online
  2. Add your domain to Microsoft 365 (admin.microsoft.com > Settings > Domains)
  3. Verify the domain via DNS TXT record
  4. Create user accounts in Microsoft 365 (or sync from AD via Entra Connect)
  5. Document current settings — distribution lists, aliases, forwarding rules, shared mailboxes
  6. Communicate to users — set expectations for downtime and what they need to do
Warning

Do NOT change your domain's MX record until migration is complete and verified. Changing MX prematurely will route new email to Microsoft 365 before mailboxes are ready, causing bounced messages.

Method 1: IMAP Migration (Most Common)section

Works with any email provider that supports IMAP: GoDaddy, Rackspace, Zoho, Hostinger, cPanel, etc.

What migratessection

  • Email messages and folders
  • Read/unread status

What does NOT migratesection

  • Contacts and calendars (must be exported/imported separately)
  • Email rules and signatures
  • Sent items (on some IMAP servers)

Step 1 — Verify IMAP access with your current providersection

You need the IMAP server address and port:

ProviderIMAP ServerPort
GoDaddyimap.secureserver.net993
Rackspacesecure.emailsrvr.com993
Zohoimap.zoho.com993
Generic cPanelmail.yourdomain.com993
Google Workspaceimap.gmail.com993

Step 2 — Create a migration CSV filesection

Create a CSV with every mailbox to migrate:

csv
EmailAddress,UserName,Password
user1@yourdomain.com,user1@yourdomain.com,OldPassword1
user2@yourdomain.com,user2@yourdomain.com,OldPassword2

Step 3 — Run the migration in Exchange admin centersection

  1. Go to admin.exchange.microsoft.com > Migration
  2. Click Add migration batch
  3. Select Migration to Exchange Online > IMAP migration
  4. Upload your CSV file
  5. Enter the IMAP server address and port (993, SSL)
  6. Set the batch name and start the migration

Step 4 — Monitor progresssection

The migration dashboard shows per-mailbox status. Large mailboxes (10GB+) can take several hours.

Step 5 — Switch MX recordssection

Once all mailboxes show "Synced", update your DNS:

  1. Change your MX record to point to Microsoft 365:
    • Priority: 0
    • Host: @
    • Points to: yourdomain-com.mail.protection.outlook.com
  2. Wait for DNS propagation (up to 48 hours, usually 1-4 hours)
  3. Verify mail flow by sending test emails

Step 6 — Complete the migrationsection

After verifying mail flow works correctly:

  1. Go back to the migration batch in Exchange admin center
  2. Click Complete to finalise the batch
  3. This stops syncing from the old server

Method 2: Google Workspace Migrationsection

Microsoft has a dedicated tool for migrating from Google Workspace.

Step 1 — Grant migration accesssection

  1. In Google Admin Console, create a service account with domain-wide delegation
  2. Grant the following API scopes:
    • https://mail.google.com/
    • https://www.googleapis.com/auth/calendar
    • https://www.googleapis.com/auth/contacts

Step 2 — Run the migrationsection

  1. Go to admin.microsoft.com > Setup > Data migration
  2. Select Gmail as the source
  3. Enter the Google Workspace service account credentials
  4. Select which users to migrate
  5. Choose what to migrate: Email, Contacts, Calendar (all three recommended)
  6. Start the migration
Tip

The Google Workspace migration tool is the only built-in method that migrates contacts and calendars in addition to email. For other providers, you will need to export contacts as a CSV and calendars as ICS files and import them separately.

Method 3: Cutover Migration (from Exchange Server)section

For organisations running on-premises Exchange Server with fewer than 150 mailboxes.

What migratessection

  • All email, contacts, and calendar items
  • Distribution groups
  • Mailbox permissions

Step 1 — Configure Outlook Anywheresection

Ensure Outlook Anywhere (RPC over HTTP) is enabled on your on-premises Exchange server.

Step 2 — Run the migrationsection

  1. Go to admin.exchange.microsoft.com > Migration
  2. Click Add migration batch > Migration to Exchange Online > Cutover migration
  3. Enter your on-premises Exchange server details
  4. Microsoft 365 will discover all mailboxes automatically
  5. Start the migration

Step 3 — Verify and switch MXsection

Same process as IMAP migration — verify all mailboxes are synced, then update MX records.

Post-Migration Steps (Critical)section

1. Update DNS recordssection

After switching MX, also configure:

RecordTypePurpose
MXPoints to *.mail.protection.outlook.comRoutes email to Microsoft 365
SPFTXT: v=spf1 include:spf.protection.outlook.com -allAuthorises M365 to send email
DKIMCNAME (two selector records)Signs outgoing email cryptographically
DMARCTXT: v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.comEmail authentication policy
AutodiscoverCNAME → autodiscover.outlook.comOutlook auto-configuration

See our full SPF/DKIM/DMARC guide for detailed setup.

2. Recreate distribution groups and aliasessection

IMAP and Google migrations do not migrate distribution lists. Recreate them in Exchange admin center or via PowerShell:

powershell
# Create a distribution group
New-DistributionGroup -Name "Sales Team" -Alias "sales" -PrimarySmtpAddress "sales@yourdomain.com"
Add-DistributionGroupMember -Identity "Sales Team" -Member "user1@yourdomain.com"

3. Set up shared mailboxessection

powershell
# Create a shared mailbox
New-Mailbox -Shared -Name "Support" -PrimarySmtpAddress "support@yourdomain.com"
Add-MailboxPermission -Identity "support@yourdomain.com" -User "user1@yourdomain.com" -AccessRights FullAccess

4. Configure Outlook on user devicessection

After MX switch, users may need to:

  • Create a new Outlook profile (recommended for cleanest setup)
  • Or clear cached credentials and restart Outlook

See our Outlook troubleshooting guide if users have connectivity issues.

5. Enable security featuressection

Now that email is on Microsoft 365, enable:

  • MFA for all users — MFA setup guide
  • Conditional Access — CA guide
  • Microsoft Defender for Office 365 — Safe Links, Safe Attachments, anti-phishing policies
  • Audit logging — enabled by default, verify in Purview compliance portal

6. Decommission the old email serversection

Wait at least 30 days after migration before decommissioning the old server:

  1. Verify no email is still routing to the old server
  2. Export any remaining data (archives, public folders)
  3. Cancel the old email hosting subscription
  4. Remove old DNS records that pointed to the previous server

Troubleshootingsection

IssueCauseFix
"Migration failed: authentication error"Wrong username or password in CSVVerify credentials against the old provider
Migration stuck at "Syncing"Large mailbox or throttling by source providerWait — large mailboxes take hours. Check migration log for specific errors
Email bouncing after MX changeMX record not fully propagatedWait 4-48 hours, verify MX with nslookup -type=mx yourdomain.com
Outlook not connecting after migrationCached credentials or Autodiscover pointing to old serverSee our Outlook troubleshooting guide
Missing contacts/calendarsIMAP migration does not include contacts/calendarsExport as CSV/ICS from old provider and import into Outlook or M365
Shared mailbox not accessiblePermissions not setGrant FullAccess via Add-MailboxPermission

Need help with your email migration?section

Explore our business email and Microsoft 365 services to discuss your migration requirements. If the migration is complete but users cannot connect, see email troubleshooting support.

Microsoft 365Email MigrationExchange OnlineIT Guide

Was this article helpful?