Migration from IMAP source to Office 365

I. Pre-migration activities

Before you install and configure CodeTwo Office 365 Migration make sure that your environment is prepared for migration.

Below you will find the list of key points to be considered:

Step 1: Create target Office 365 custom domain

Add the custom domain to the target Office 365 account and verify it.

Learn more about creating additional/custom domains in Office 365

Step 2: Recreate/import source users to Office 365

Recreate or import all existing Exchange users to the target Office 365 and configure their accounts under a new domain. During the mailboxes matching step, you are also able to set the program to create user accounts and assign licenses automatically.


Please be aware that prior to migration you have to prepare (in the target environment) a mailbox-enabled user account for each user included in the migration.

What is more, if you choose either to manually create the mailboxes or allow the program to prepare them for you, be advised that the account data (such as permissions) will not be migrated.

Learn more about creating new Office 365 users

Learn more about importing multiple users to Office 365 via a CSV files

Step 3: Verify that the admin account used to connect to the target Office 365 tenant has the necessary roles assigned

  1. Check if the target admin account has the following management roles assigned:
    • ApplicationImpersonation
    • View-Only Configuration
    • View-Only Recipients
    • Public Folders*
    • User management administrator/Global administrator*


      Please note that the Public Folders role is only required if you plan to migrate public folders. Moreover, the User management administrator/Global administrator role is required to create new users and mailboxes. Therefore, it's not required to assign it to the admin account if you are migrating data to the mailboxes that already exist on the target server.

    If any required roles are missing, you can either assign them manually, following the steps described in this KB article or let the program assign them for you in the Configuration step of the Target server connection wizard.

  2. Ensure that the UPN has been defined for this account
  3. Ensure that this account has a valid, non-hidden mailbox on the source Exchange server.


UPN (User Principal Name) is the name of a system user in an email address format. Learn more.

Step 4: Make sure the Office 365 Administrator's email address corresponds to the new active domain

Assuming that your custom domain has already been activated (see Step 1 above), double-check that your admin's e-mail address is correct and corresponds to the new domain. To do that, perform the following actions:
  • Log in to the Administrator's account.

  • In the Admin tab select Office 365.

  • Choose Users and Groups and the table with all organization users will display.

  • Select the Administrator's account and in Details under User name section locate the drop-down menu showing all available domains within the organization.

  • If the domain visible in the email address is inactive change it over to the active one and save changes.

Step 5: Assign licenses in Office 365

Make sure that Office 365 licenses are assigned to all user accounts that will be used as the target mailboxes. Alternatively, during the mailboxes’ matching step you can set the program to create the mailboxes and assign the licenses automatically.

Learn more about assigning licenses in Office 365

Step 6: Installation of components required to install CodeTwo Office 365 Migration (the installation wizard will guide you through this process)

  • MAPI CDO (MAPI Client and Collaboration Data Objects, will be installed on all systems except for systems with coexisting MS Outlook x86 older than version 2016, MAPI will be used only if Exchange Server On-Premises is configured as a source)
  • .NET 4.0 (required on any system, might be already installed)
    Learn more

Step 7: Prepare source IMAP server settings

Verify the following:

  • You have a list of all credentials for mailboxes you want to migrate via IMAP - here is why
  • Know your IMAP server address or IP, port and SSL connection support - for example, for Gmail those are: imap.gmail.com, port 993, enabled SSL
  • IMAP access is enabled on the source server - see here how to do this for Gmail and Google Apps accounts

Step 8: Installation of CodeTwo Office 365 Migration

In the case of migration from IMAP the program can be installed anywhere e.g. on a workstation outside source and target domains.


Please note that if you are about to migrate from both: IMAP source(s) and Exchange Server On-Premises you must install the software in the source Exchange Server environment, preferably directly on the source Exchange Server.


Make sure you meet the system requirements prior to installing the software.

II. Migration process

The steps below will guide through the correct configuration of CodeTwo Exchange Migration:

Step 1: Connect to the source server


Make sure that the software user who runs the migration is a local administrator.

Once you start the program, you will see the Dashboard view. Click Create a new migration job link on the How to start card. Select the source server type: IMAP. The create IMAP migration job wizard will open. Set the name of the job and click Next to proceed to the Source mailboxes step. If this is your first migration job, you will need to configure a connection to the source IMAP server. Click Add new source connection and a wizard will open. You need to go through these steps:

  • Server connection - in this step, you need to choose your IMAP source and some connection settings.
  • Throttling - there you can customize the software behavior if you stumble upon throttling issues on the IMAP source server.
  • Configuration - this process configures your connection based on the settings provided in the previous steps.

Step 2: Continue the job configuration to provide source mailboxes credentials

After successfully configuring the source connection, you will get back to the Source mailboxes step of the migration job wizard. Now you need to define which mailboxes you want to migrate.

  • Prepare a CSV file that contains source mailbox credentials as listed below. Do not worry that much about CSV format. CSV import feature lets you adjust the software to the file format used, e.g. you do not need to use a specific fields delimiter - use the one you like, you will be asked by the CSV import feature what kind of delimiter was used in the file.
    • Login - required
    • Password - required
    • First Name - optional
    • Last Name - optional
    • Display Name - optional
  • Click Import CSV and select your CSV file.
  • Configure the software to properly import data from your CSV file.

Step 3: Set the Target connection

After successfully configuring the source connection and choosing source mailboxes, click Next to configure the Target Office 365 connection. In the Target mailboxes step, choose Add new target connection from the Target server drop-down menu. A simple wizard will open.

  • Admin account – provide the email address and password of the Office 365 admin account. If this account has multi-factor authentication enabled, enter the app password instead (learn more). Click Next to move on to the Configuration step.
  • Configuration – this process configures the connection to the target Office 365 server and checks whether the account provided in the previous step has the necessary roles assigned. If not, the program will attempt to assign them automatically. In such a case, you may be asked to provide the credentials of another account that is assigned the Global administrator role. This account will not be used to connect to the Office 365 tenant, but only to assign the missing roles.

Once the configuration ends successfully, you will see green check marks. If any errors appear, see Troubleshooting.

After your connection is established, click Finish and proceed to the next step (Match mailboxes).

Step 4: Match source and target mailboxes

Matching the Source with the Target mailbox can be done in two ways: automatically via the built-in Automatch feature or manually. Either way, click the Match mailboxes button.

To match manually a single mailbox, click on Click to match target link in the Target user mailbox column and choose the most appropriate option for this user. After selecting an option you may be asked to provide further details (e.g. password for newly created users). The available approaches are:

  • Create a new user - to create both Active Directory user and corresponding mailbox, using the defaults values that you can also change.
  • Choose an existing user from the list - to select an existing user in the target environment that does not have mailbox created yet
  • Manually specify the mailbox address - this option should be used in the case you are unable to list the target environment

However, when it comes to matching hundreds of mailboxes, the process may be extremely time-consuming. To automatically set the best available actions for desired users, simply select them on the list (you can use Ctrl+A shortcut to choose all entries) and eventually click Automatch. Select desired options and start the process.

What is more, you can define what type of Office 365 license is going to be assigned for particular users.

When you have matched all your mailboxes you can continue to configure additional options.

Step 5: Customize all necessary aspects of the migration job

You may configure the following additional options:

  • Scheduler - allows you to set the job to be automatically started in the desired time periods, so you do not have to control it manually.
  • Time filter - is used to exclude items that are older or newer than a particular date.
  • Folder filter - may completely exclude specific folders from the migration process.
  • Advanced settings - this step lets you define how many mailboxes should be migrated at the same time and set the maximum size of items to be migrated.

Step 6: Start the migration

Simply click Start on the ribbon to begin the process.


The migration processing time depends on several different factors, e.g. the number of mailboxes and items, the speed of internet connection, Office 365 throttling settings. We have published more details here

Step 7: Check if the number of migrated items in the Target mailbox folder corresponds to its equivalent on the Source server

If you notice any missing items in the Target mailbox restart the migration using the Rescan feature.


Please be aware that the program does not migrate some specific folders at all. Those are i.e. Sync Issues or ones created while putting a mailbox on hold.


If any problems appear during the migration process they will be indicated on the dashboard, pointed on the reports and logged in the log files. Check out the software's diagnostics.

Step 8: Check if there are not any new items in the Source mailbox after migration

Once the migration is finished and you have noticed that some new items appeared in the migrated Source mailbox, just restart the migration using the Rescan feature. Please keep in mind that the Rescan feature uploads only new items, not changed ones.

III. Post-migration cleanup

Once the migration is completed please follow the points below:

Step 1: MX records

If you have your own domain pointed at source server you probably want it now to point at the new server. Change MX records with your domain registrar to enable mail flow to new servers instead of the old ones. Please note that this process may take several hours.


If any new items appear in a source mailbox while the MX records are being changed, it is possible to migrate them after the records' migration process is completed. It can be done using Rescan feature.

IV. Troubleshooting

For troubleshooting information, refer to our Knowledge Base.

For additional resources, refer to Frequently Asked Questions or give us a call.

Was this information useful?