Howto – enable email migration into Google Apps



The Administrator setup for Google Apps Migration guide makes things look pretty straightforward, but it’s much, much more complicated. What should be just a couple of check boxes turned out to be a twisty turny journey through hidden menus littered across distant parts of the administrators console.


The move from CohesiveFT to Cohesive Networks meant I needed to move all of my email out of one service and into another. Last time I did this it was easy – suck email down from old account using an IMAP client (Outlook), then push email up to the new account via IMAP. Obviously this was too much of a good thing, and was hurting Google’s poor, tiny and fragile infrastructure[1].

It all started out fine

I actually had no problem whatsoever pulling down all of my emails from the old account, even though at 3.1GB of data it should have bust my bandwidth limit. The trouble began when I tried to upload to the new account. About 30 items (of about 35,000) made it over, and then it choked.

Google Apps Migration for Microsoft Outlook

Next I tried the official tool. But that didn’t get me very far:


I didn’t have admin access to the new account, but I was assured that the Email Migration API was enabled. If you were an admin, and you saw this then you’d probably think everything was fine:


Further down the same page there’s a section about the Email Migration API. It doesn’t actually let you do anything – it just links to this (not very helpful) web page:


Show More

To actually get headed in the right direction you first have to click on the little ‘Show More’ at the bottom of the Security page[2]:


This brings up the ‘Advanced settings’ option. It will remain a mystery of the universe why Google choose to hide a single extra item with a ‘Show more’.


At this point you might jump straight at ‘Manage API client access’ but don’t. It’s ‘Manage OAuth domain key’ that you want first:


Now check the box to ‘Enable this consumer key’:


It takes a few minutes for this to take effect. So grab a coffee or check email or something before returning to the ‘Manage API client access’ part:


Now paste in your domain name and the URL for the email API, which is


If you’ve waited long enough after enabling the consumer key for your domain then Authorize should work.

We’re not done yet

At this stage I managed to upload about 70 emails from the tool before it failed complaining about network issues. Subsequent attempts didn’t get any further.

A visit to Apps > Google Apps > Setting for Gmail > Advanced settings revealed some additional boxes to be checked:




Got there in the end

The migration tool still didn’t work, but I was now able to upload via IMAP (just as I’d planned to do in the first place). It took a whole day, but it got there in the end.


It’s quite possible that I could have made my Outlook IMAP upload work just by doing the last bit (in the Google Apps menu).

Enabling mail API access, which is what the migration tool seems to want, is much harder than it should be (or is made out to be). It’s also pointless, as the migration tool doesn’t seem to work properly.

I can’t end here without saying

The only time I ever use Outlook (which I despise) is for doing this sort of thing. Well… it ought to be useful for something.


[1] Since Google’s infrastructure is basically the largest in the world I’m struggling to imagine what sort of abuse let to them clamping down on email uploads, but I’d bet it has something to do with spammers.
[2] The Google Apps Migration for Microsoft Exchange Administration Guide (pdf) got me pointed in the right direction here.

No Responses Yet to “Howto – enable email migration into Google Apps”

  1. Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: