How to Migrate from an IMAP Server to Google Apps
If you need to get a bulk email migration done from an IMAP server to Google Apps, the Google Apps Migration for MS Exchange (GAMME) tool is the right one for you! Not only does it migrate from MS Exchange to Google Apps, it allows you to complete a migration from an up-to-date IMAP server as well. Some popular servers that permit IMAP migrations include Novell® GroupWise®, Cyrus, Dovecot, and Zimbra (You can even migrate from a Gmail account) to name a few. In this post we will demonstrate how to configure GAMME to migrate from an IMAP server.
First, you’ll need to download and install the Google Apps Migration for MS Exchange tool on a workstation that has MS Outlook 2003 or newer installed on it by navigating to https://tools.google.com/dlpage/exchangemigration
Click OK then go to the Windows Start button > Google Apps Migration for Microsoft® Exchange to get the tool going. You will need to enter the source IMAP server’s settings on the first page which consists of specifying the server name (or IP address) and whether SSL is necessary to connect to the server or not.
You then need to create a CSV spreadsheet with all the users that you want to migrate. The format should be as follows:
Save the CSV file and upload it on the next page of GAMME: Users and Domain Information under File of Users to Migrate. You have to specify the Google Apps Domain Name and the Google Apps Two-legged OAuth Consumer Key and Secret. This information can be gathered from your Google Apps admin console, where you need to make sure certain settings are enabled.
You will need to enable API access found in the Admin Console under Security > API Reference > API Access > Make sure Enable API access is check marked.
The Consumer Key is your Destination domain name which is also your Google Apps domain name. The Consumer Secret is generated in your admin console under Security > Advanced Settings > Authentication > Manage OAuth Domain Key:
- OAuth Consumer Key: domain.com - Make sure Enable this Consumer Key is checkmarked
- OAuth Consumer Secret: You can click on Regenerate OAuth Consumer Secret if you run into issues with the original secret available.
Under Advanced Settings you will also need to navigate to Manage Third Party OAuth Client Access and enter the following information:
Client Name: Your Consumer Key which is your domain name.
- One or More API Scopes (copy/paste the following as is): https://apps-apis.google.com/a/feeds/emailsettings/2.0/, https://apps-apis.google.com/a/feeds/user/#readonly, https://www.google.com/calendar/feeds/, https://www.google.com/m8/feeds/, https://www.googleapis.com/auth/apps.groups.migration, https://apps-apis.google.com/a/feeds/migration/, https://apps-apis.google.com/a/feeds/group/#readonly
Then click on Authorize. If created correctly it should look like this:
Moving on to the next GAMME page, you will need to specify if you want to migrate all emails or from a specific date range. You can tell GAMME to not migrate certain top-level folders from all users’ mailboxes (i.e. Deleted Items). If you want to limit the numbers of migrations running at the same time you can limit that by checkmarking the Restrict Migration to  Users At A Time.
On the next page, review the settings that you just entered then Save Settings in case you want to run the migration again in the future. We recommend enabling Running Diagnostics, Estimate and Migrate:
Once you’ve successfully run the Diagnostics checks to validate your settings you can then click on Start to begin the Estimation process to find out how many emails will be migrated for all users.
GAMME will let you know how much data needs to be migrated and will log each step it takes which you can review in the Log file and Error Reports in case there are errors you need to resolve.
During the migration we advise users that they can log in to their Google Apps mailbox to send/receive emails however we recommend that they don’t move migrated emails out of their labels (folders) and they refrain from renaming or deleting migrated labels until the migration process is complete. For additional information, feel free to consult Google's admin guide.