Migrate
How to Migrate Gmail to Zoho Mail
Migrate Gmail to Zoho Mail using IMAP or Zoho's Migration Wizard, with proper app passwords, domain setup, and label-to-folder mapping.
Alex Kerr
Lead Migration Engineer, Mailbox Taxi
Gmail-to-Zoho migrations sit at an interesting middle ground. Zoho gives you a real admin console with a Migration Wizard, which feels familiar if you have done Microsoft 365 cutovers, but the underlying transport is still IMAP. The work is in three places: getting the Zoho tenant ready (domain, users, DNS), getting the Gmail side credentialled, and mapping Gmail's label model onto Zoho's folder model without duplicating messages. This guide takes you through each of those, with the operational specifics you need for a clean cutover.
Skip the manual setup — let Mailbox Taxi handle it
One desktop app, every IMAP provider, zero data leaving your machine.
Why Zoho is a different destination
Zoho Mail is a hosted business mail platform with a real admin console at mailadmin.zoho.com. That changes the shape of the migration compared to, say, moving from Gmail to a personal Yahoo account. You are not just authenticating IMAP and copying messages; you are also provisioning users, setting up a domain, configuring MX records, and choosing between Zoho's built-in Migration Wizard or an external IMAP tool.
The Migration Wizard is convenient for one-shot batch migrations across a tenant. You point it at the source provider, supply credentials, and let it process. It runs server-to-server, which is faster than pushing through a laptop. The downside: less granular control over what gets copied, weaker pause-and-resume, and label-to-folder mapping that does not always match what you want.
The IMAP path through a desktop tool like Mailbox Taxi gives you mapping control, message-level skips, throttling controls, and the ability to handle stragglers cleanly. It runs slower because traffic transits your machine, but for migrations with non-trivial mapping requirements it is the saner option. A common pattern is: run the bulk through Zoho's wizard, then handle the awkward mailboxes (huge sizes, weird labels, holdout users) through the desktop tool.
Prerequisites and pre-flight checks
A Zoho migration has more setup than a free-tier consumer move. Budget half a day of admin work before you copy a single message.
On the Zoho side
- A Zoho Mail account, on a paid plan if you want a custom domain. The free tier limits you to
zohomail.com-suffixed addresses, which is fine for personal moves but not for business. - Domain verified in the Zoho admin console. Add your domain at mailadmin.zoho.com → Domains and complete the verification record.
- MX, SPF, and DKIM records configured. The admin console gives you the exact values for each. Do this before you cut over but you can leave MX pointed at Gmail until the migration is done.
- User mailboxes created. Each destination user must exist in Zoho before you can copy data into it. Bulk-create from the admin console using the User Details upload.
- An understanding of per-user mailbox limits on your Zoho plan. Plans vary; check the cap before you start so you do not stall a 50GB mailbox into a 30GB destination.
On the Gmail side
- IMAP enabled at gmail.com → Settings → See all settings → Forwarding and POP/IMAP.
- 2-Step Verification enabled on each source mailbox, which is required for either OAuth or app passwords.
- App passwords generated, or OAuth authorised, per source mailbox. For a 50-user migration, OAuth via Google Workspace's service-account flow is dramatically less tedious than 50 individual app passwords.
- A label audit. For each user, you need to know roughly what their label tree looks like so you can decide on mapping.
- Forwarding rules disabled (or scheduled to be disabled at cutover) to prevent messages bouncing back to Gmail.
Domain verification is the long pole
Verifying a domain in Zoho is a five-minute task but DNS propagation can take hours. Do this on day one of the project, not the morning of cutover. The verification record is independent of MX — you can verify the domain in Zoho while production mail is still routing through Gmail.
For background on app passwords across providers, see what an app password is. For the IMAP terms that come up in Zoho's logs, the IMAP protocol glossary is the reference.
The migration procedure
The procedure below works for both Zoho's Migration Wizard and a desktop IMAP tool. Steps 1 through 4 are identical; step 5 is where you choose the path.
Set up the Zoho destination
In the Zoho admin console at mailadmin.zoho.com, add your domain, complete the verification record at your DNS provider, and wait for verification to clear. While that propagates, configure SPF and DKIM records using the values Zoho provides. Leave MX pointed at Gmail for now. Setting up the destination shell first means the rest of the migration has a real place to land.
Create destination user mailboxes
Create each user in the Zoho admin console. For more than ten users, use the bulk user upload — download the CSV template, fill in usernames, names, and plan assignments, and upload. Assign the right Zoho Mail plan per user so storage caps match what you expect. Confirm each mailbox is fully provisioned by signing in once through mail.zoho.com or by checking that the user has a valid IMAP login.
Prepare the Gmail source
For each source mailbox, confirm IMAP is enabled and 2-Step Verification is on. Audit labels. Decide:
- Which labels become folders in Zoho?
- How are nested labels handled (preserved or flattened)?
- Are you copying All Mail or only labelled folders?
- Which system labels (Categories, Important, Chats) get skipped?
Document the decisions because you will need them when configuring mappings.
Generate Gmail credentials
For each source user, either authorise OAuth through your migration tool or generate an app password at myaccount.google.com → Security → App passwords. For Workspace tenants, a service account with domain-wide delegation is dramatically easier than per-user app passwords — set it up once, scope it correctly, and you can migrate every user without bothering them. If app passwords are misbehaving on the Gmail side, see fix Gmail app password.
Choose your migration path
Two real options:
- Zoho Migration Wizard, at mailadmin.zoho.com → Mail Administration → Migration. Create a migration, pick IMAP as the protocol, enter
imap.gmail.comas the source server, port 993, SSL on. Add users with their credentials. Start the migration. Zoho handles the server-to-server transfer. - Desktop IMAP tool, such as Mailbox Taxi. Add Gmail as source and Zoho as destination. Configure both connection sets with the IMAP hosts and credentials. Set up mapping per user.
For tenant-wide bulk moves, the wizard wins on speed. For mixed-mapping migrations or mailboxes with awkward edge cases, the desktop tool wins on control.
- Zoho Migration Wizard, at mailadmin.zoho.com → Mail Administration → Migration. Create a migration, pick IMAP as the protocol, enter
Configure mappings
Whichever path you chose, set explicit mappings for the four critical Gmail folders:
[Gmail]/Sent Mail→Sent[Gmail]/Drafts→Drafts[Gmail]/All Mail→ skip[Gmail]/Spam→ skip or →Junk
For the rest of the label tree, decide preserve-nesting or flatten. Zoho handles real nested IMAP folders well, so preserving is usually fine.
Pilot one mailbox
Migrate one mailbox end-to-end. Open the result in Zoho's web mail and in a desktop IMAP client pointed at
imap.zoho.com. Verify: per-folder counts, Sent and Drafts placement, attachments, Unicode subjects, dates, and Zoho's threading (which works slightly differently from Gmail's). A pilot saves a full-batch rerun if mapping is off.Run the full migration
Start the full run. If using Zoho's wizard, monitor progress in the admin console; the wizard handles concurrency for you. If using a desktop tool, run 2 to 4 IMAP threads per mailbox. Watch logs for
AUTHENTICATIONFAILED,Too many simultaneous connections, andMessage too large for destination. For a multi-mailbox run, expect rough throughput of one to two GB per hour per mailbox.Verify and cut MX over
Compare per-folder message counts on each user. Allow for variance on Drafts and on multi-labelled messages. Once verification is clean, update MX records at your DNS provider to point at Zoho's MX. Lower the TTL on MX 48 hours in advance so the change propagates quickly. Tell users when to reconfigure their mail clients to
imap.zoho.com(port 993, SSL) andsmtp.zoho.com(port 465 or 587).
Gotchas specific to this pair
A handful of issues come up often enough to call out.
Regional Zoho data centres have different hosts. If your Zoho account is on the EU data centre, the IMAP host is imap.zoho.eu, not imap.zoho.com. Similar for .in and .com.au. Using the wrong host produces a generic connection refusal that is easy to misdiagnose as credentials.
Zoho's Migration Wizard does not always preserve labels as nested folders. Depending on the wizard's IMAP-source mode, nested Gmail labels may flatten. If preserving hierarchy matters, the desktop IMAP path is more predictable.
Drafts behave differently between providers. Gmail auto-saves drafts on a long debounce; Zoho saves on a different schedule. The result is that the source mailbox can have two or three near-identical drafts of the same message, all of which get copied. Tell users to expect a brief drafts cleanup after the migration.
Sent items from before app-password rollout can have weird headers. Old Gmail sent messages sometimes have non-RFC-conformant headers that Zoho's IMAP server rejects. These are rare but log them so they can be re-uploaded by hand if they matter.
MX propagation can split mail flow. During the propagation window after you change MX, some senders will deliver to Gmail and some to Zoho. Either leave Gmail running for a 14-day overlap with forwarding to Zoho, or set the cutover during a low-traffic window and accept some delivery to the old destination for up to 48 hours.
Service accounts beat per-user app passwords
For Workspace source tenants of more than 10 users, set up a service account with domain-wide delegation and scope it to https://mail.google.com/. You authenticate once and can then migrate every user without generating per-user app passwords. Document the service account so you can revoke it cleanly after the migration is done.
Errors you will see
The short field guide. These are the messages you will spend the most time looking at.
AUTHENTICATIONFAILEDfrom Zoho. Check the IMAP host first (regional data centres use different hosts) before assuming credentials are wrong.AUTHENTICATIONFAILEDfrom Gmail. App password revoked or the source user changed their main Google password. Regenerate.Too many simultaneous connectionsfrom Zoho's IMAP server. Drop concurrency to 2 or 3.Message too large for destination. Attachments exceeding Zoho's per-message ceiling. Log them for manual handling.Mailbox full. The destination user has hit the per-user storage cap on their Zoho plan. Upgrade the plan or split the source mailbox.STARTTLS handshake failed. Almost always a port or TLS-mode misconfiguration. Use port 993 with SSL, not 143 with STARTTLS.OAuth2 token expiredmid-run. Re-authenticate.
If you are moving in the reverse direction, see migrate Zoho to Gmail. If the destination ends up being Microsoft 365 instead of Zoho, see migrate Gmail to Office 365. For another popular IMAP-to-IMAP destination, see migrate Gmail to Outlook.
Communicating the cutover
For a Zoho migration the cutover involves both client reconfiguration and an MX change, which makes user communication more important than for consumer-to-consumer moves.
A reasonable cadence: two weeks out, send a project kick-off note explaining what is changing and what users need to do (and not do). One week out, send a setup guide with the Zoho IMAP and SMTP settings, screenshots for the most common clients (Outlook, Apple Mail, mobile), and the cutover schedule. Two days out, send a reminder. The day of, send a 30-minute warning. The day after, send a wrap-up with troubleshooting contacts.
Schedule cutover for a Friday evening or Saturday morning. Lower MX TTL 48 hours in advance so propagation is quick. Plan to keep Gmail receiving and forwarding to Zoho for at least 14 days after MX change in case any senders cached the old records.
For overall project planning, the complete email migration guide walks through DNS, scheduling, communication templates, and rollback in more detail. Read it once before you set the cutover date.
Migrate your mailbox the easy way
Join the waitlist for early access and lock in launch pricing.
Related reading
migrate
Migrate Zoho Mail to Gmail: IMAP Walkthrough for Real Cutovers
Move Zoho Mail to Gmail with app-specific passwords, verified IMAP settings, and preserved folders. A practical guide for a clean cutover with no surprises.
migrate
How to Migrate Gmail to Outlook in 2026 (Step-by-Step)
Move Gmail mail, labels, and folders into Outlook without losing data. The exact steps, the auth quirks, and the throttling limits to plan around.
migrate
How to Migrate Gmail to Office 365
Step-by-step guide to migrate Gmail to Office 365 using IMAP, CSV batches, and app passwords without breaking authentication or losing mail.
glossary
What Is IMAP? A Plain-English Definition
IMAP (Internet Message Access Protocol) is the standard that lets email clients read mail from a server. Here's what it does, how it differs from POP3, and why it matters for migrations.
blog
The Complete Email Migration Guide for 2026
Plan, execute and validate an email migration without losing folders, flags, or sleep. A pillar guide that walks the full process end to end.
glossary
What Is an App Password? A Plain-English Guide
What an app password is, how to generate one in Gmail, Yahoo, and Apple, and when OAuth is the better path for connecting a migration tool.
Migrate your mailbox the easy way
Join the waitlist for early access and lock in launch pricing.