Just like Dovecot, Google Apps also support logging in to users' email account without resetting the passwords. Unfortunately, this feature is not available for Google Apps Standard-users (i.e. free), but is restricted to Google Apps for Business-users (and Education).
The way Google resolved this was to add support for OAuth authentication to their IMAP server. Hence, to use this feature, you will need an OAuth key.

Generate an OAuth key

Start by logging into the administrative dashboard of your domain (https://www.google.com/a/yourdomain.com). Go to the tab named ‘Advanced tools.’
Next click on the link named ‘Manage OAuth domain key.’
On this screen you need to make sure that you select the following check-boxes:

  • Enable this consumer key

  • Allow access to all APIs

Getting the OAuth-keys

Press ‘save changes.
You now need to provide us with the following pieces of information:

  • OAuth consumer key

  • OAuth consumer secret

Please note that if you are moving between two Google Apps-domains, we need this information from both domains.

Using your OAuth key(s) in YippieMove

Once you got your OAuth key(s) ready, you can start using them with YippieMove. Fist take a look at our Batch Migration help-page. Once you understand the workflow, downloading this custom CSV-file (a modified version of the one available on the regular batch page).
Open up the CSV-file in a spreadsheet program like Apple Numbers, Open Office or Google Docs. Everything but Microsoft Excel should work fine, as Excel is known to break the CSV-files. In the file you'll find a number of fields. I've outlined the field, along with example values if one were to move from imap.example.com to Google Apps with OAuth-authentication:

  • src_username

  • The username of the source account.
  • src_password

  • The password for the source account.
  • src_xoauth_token_or_consumer_key

  • Leave blank.
  • src_xoauth_requestor_id

  • Leave blank.
  • src_host

  • imap.example.com
  • src_port

  • 993
  • src_ssl

  • True
  • dst_username

  • The username for the source account.
  • dst_password

  • The consumer secret.
  • dst_xoauth_token_or_consumer_key

  • The consumer key.
  • dst_xoauth_requestor_id

  • The username (same as dst_username).
  • dst_host

  • imap.gmail.com
  • dst_port

  • 993
  • dst_ssl

  • True
  • prefix

  • If you want to add a prefix to the folders. Eg. Enter 'foo' if you want the folder 'bar' to be named 'foo/bar' on the destination.
  • owner

  • Deprecated. Leave blank.
  • exclude

  • List folders you wish to ignore from the migration.

While that might seem overwhelming at first, it isn't that complicated. Also, if you are moving many accounts, it will surely save you a lot of time both while preparing for the migration and during the actual migration.