Blog/ Switching and migration

Migrating Custom Domain Email With Zero Downtime

Nafiul HasanNafiul Hasan· 12 min read
Diagram of migrating custom domain email without downtime: lowering MX TTL, dual delivery during DNS propagation, and updating SPF, DKIM and DMARC

The short answer

Lower your MX record's TTL a few days ahead so the change propagates fast, then copy existing mail into the new provider by IMAP while the old mailboxes stay live. Cut MX, keep both mailboxes receiving during propagation, run a final catch-up sync, and update SPF, DKIM and DMARC before you decommission the old provider.

How to migrate custom domain email without downtime: lower MX TTL, pre-seed mailboxes, run a dual-delivery window, and fix SPF, DKIM and DMARC.

On this page
  1. 01What actually moves — and what doesn't
  2. 02Pre-migration checklist
  3. 03The migration steps
  4. 04What breaks during an MX change
  5. 05The dual-delivery window, visually
  6. 06Rollback plan
  7. 07Doing it without downtime
  8. 08Watching both inboxes during the overlap

Moving a domain's mailboxes from one provider to another sounds like it should be a single switch, but it is really a DNS event with real failure modes: bounced mail, a delivery gap, and outbound that suddenly fails authentication. The good news is that with the right order of operations, you can learn how to migrate custom domain email without downtime — no lost messages, and no visible gap for the people writing to you.

Your email addresses do not change in this kind of move. The domain stays the same. What changes is the MX record that tells the internet which server accepts mail for it, plus the SPF, DKIM and DMARC records that decide whether your sent mail is trusted.

This guide is provider-agnostic. The exact admin screens differ between Google Workspace, Microsoft 365, Fastmail, Zoho and the rest, and they change on their own release schedules, so it links to the vendors' live documentation for the click-by-click and focuses on the sequence that keeps mail flowing while you switch.

What actually moves — and what doesn't#

A custom-domain migration has two halves that people often conflate. One is inbound: where new mail is delivered, controlled entirely by the MX record. The other is your existing mailbox contents — years of mail, folders, read state, and sometimes contacts and calendar — which has to be copied across separately, usually over IMAP.

The MX change is instant to make and slow to spread. Copying mailbox contents is slow to run but touches nothing the outside world sees. Keeping those two facts apart is what makes a clean migration possible: you copy everything first, at your own pace, and flip the switch last.

What you're movingHow it movesAutomatic?
New incoming mailThe MX record — repoint it at the new providerYes, once MX propagates
Existing mail, folders and read stateIMAP copy or the provider's own import toolNo — you run it, and it can take hours
Contacts and calendarA dedicated import, not IMAPNo — IMAP moves mail only
Your email addressesNothing — the domain and addresses stay identicalN/A — they don't change
Server-side filters, rules and autorespondersRecreate by hand at the new providerNo
Aliases, distribution lists and forwardsRecreate at the new provider before cutoverNo
DKIM keys and sending reputationNew provider issues new DKIM keys; reputation rebuildsNo — you publish new records

IMAP moves mail, and only mail

Microsoft's own migration documentation is explicit: an IMAP migration moves the items in a user's mail folders — not contacts, calendar items or tasks — and it does not create the mailboxes for you. Plan contacts and calendar as a separate import, and provision every target mailbox before you start the copy.

Pre-migration checklist#

Most migrations that lose mail fail here, in preparation, not in the copy itself. Work through this before you touch a single DNS record — several items have to be true before the ones after them will work.

  • Confirm you have edit access to the domain's DNS zone at the registrar or DNS host. MX, SPF, DKIM and DMARC all change, and discovering mid-cutover that someone else controls DNS is the classic stall.
  • Check the current TTL on the MX record. Whatever it is now is how long old copies linger in resolver caches, so you lower it first and wait out the old value.
  • Create every mailbox at the new provider with the exact address it has today, before copying anything. An IMAP import has nowhere to land without the target mailbox already existing.
  • Inventory mailbox sizes. A 40 GB mailbox's first IMAP pass can run for many hours; knowing that up front tells you when to start.
  • Collect the new provider's SPF include, DKIM selector records and recommended DMARC value now, so publishing them at cutover is a paste, not a research task.
  • List every server-side filter, alias, forward and autoresponder on the old provider. None of these travel over IMAP — you recreate them.
  • Decide how you'll handle residual mail — forwarding from the old provider to the new, or a final catch-up sync — before, not during, the cutover.
  • Tell users the cutover window and ask them not to change server-side filters or delegate settings during it.

Run one pilot mailbox end to end

Before you migrate the whole domain, run the entire sequence — provision, IMAP copy, publish SPF and DKIM on a test subdomain, send and receive real mail — against one low-stakes mailbox. It surfaces a broken import credential or a wrong DKIM selector while the blast radius is a single inbox.

The migration steps#

  1. 1

    Lower the MX record TTL

    At least 24 to 72 hours before cutover, drop the MX record's TTL to a low value such as 300 seconds. A short TTL is the only control you have over propagation speed — but it only takes effect after the previous TTL has expired everywhere, which is why you do it days ahead, not on the day.

  2. 2

    Provision mailboxes at the new provider

    Create each mailbox with its exact current address. An IMAP import has nowhere to deliver otherwise, and Microsoft's documentation notes plainly that IMAP migration does not create the mailboxes for you.

  3. 3

    Copy existing mail over IMAP

    Point the new provider's import tool at the old server over IMAP and run the first full pass while the old provider still receives live mail. Nothing the outside world sees changes yet — this is a copy, not a cutover.

  4. 4

    Publish the new SPF, DKIM and DMARC records

    Add the new provider's SPF include, publish its DKIM selector records under _domainkey, and confirm your DMARC record still aligns. Do this before or at cutover so your first outbound from the new provider passes authentication.

  5. 5

    Cut the MX record

    Repoint MX at the new provider's mail exchanger. This is the only step that redirects new mail. From here, delivery shifts to the new server as each resolver's cached MX expires — fast for most, slower for a few.

  6. 6

    Run the dual-delivery window

    For as long as propagation lasts, both servers may receive mail. Keep both mailboxes live and either forward residual mail from the old provider to the new one, or run repeated IMAP catch-up passes so nothing is stranded.

  7. 7

    Run a final catch-up sync

    Once the MX change has fully propagated and no new mail is arriving at the old server, run one last IMAP pass to pull anything that landed there during the window.

  8. 8

    Decommission the old provider last

    Only after the final sync — and ideally a trailing week or two of monitoring — cancel or downgrade the old mailboxes. A deleted source mailbox is the one step in this list you cannot cleanly undo.

What breaks during an MX change#

Almost every failure in a domain migration is a timing or record problem, not lost data — which is also why the sequence above prevents most of them. These are the ones worth planning around.

What breaksWhyHow to avoid it
Some senders keep hitting the old server for hoursTheir resolver still has the old MX cached until its TTL expiresLower the MX TTL days ahead, and keep the old mailbox live and forwarding through the window
Mail bounces during cutoverThe old mailbox was deleted before propagation finished, so cached-MX senders hit a dead serverNever decommission the source until the change has fully propagated and a final sync is done
Your outbound suddenly lands in spam or is rejectedThe new provider is sending, but SPF and DKIM still authorize only the old onePublish the new SPF include and DKIM records before you send from the new provider
SPF fails with a permerrorTwo separate SPF TXT records now exist, which is invalid — a domain may publish only oneMerge every include into a single SPF TXT record, not a second one
DMARC starts failing your own mailA strict p=reject policy plus unaligned SPF and DKIM at the new provider bounces your outboundConfirm SPF and DKIM alignment at the new provider before cutover, or relax DMARC to p=none during the transition
Filters, aliases and autoresponders stop workingThese live server-side at the old provider and don't travel over IMAPRecreate them at the new provider before cutover, from the list you inventoried

The dual-delivery window, visually#

The single idea that makes zero-downtime migration work is that an MX change is not atomic. For a stretch of time — bounded by the TTL you set — some mail servers on the internet still deliver to your old provider while others have already picked up the new one. Nothing is lost as long as both mailboxes accept mail and you reconcile what landed where.

This is why the plan keeps both providers receiving through the transition instead of switching instantly. The overlap is the safety net, not a mistake.

Mail routing during an MX cutover: while DNS propagates, some senders reach the old provider and some the new one, so both mailboxes stay live and their mail is reconciled
During propagation, delivery splits between the old and new servers — keep both receiving until it converges.

Rollback plan#

A domain migration is close to fully reversible right up to the MX cutover, and stays reversible for a while after — as long as you kept the old provider active. The whole rollback plan is one rule: don't cancel the source until you're sure.

  • Before MX cutover: there is nothing to roll back. The old provider is still authoritative for delivery; the copied mail at the new provider is only a copy.
  • Right after cutover, if delivery breaks: point MX back at the old provider. It takes the same TTL-bound time to propagate back as it did forward — another reason the low TTL matters both ways.
  • Keep the old provider's SPF include in place a little longer rather than removing it the instant you cut over. Pulling it too early is a common self-inflicted bounce.
  • Set a rollback trigger in advance — for example, more than a handful of missing-mail reports in the first few hours — and name who has the authority to call it.
  • Don't delete the old mailboxes for at least a couple of weeks. A cancelled mail plan is not reversible the way a DNS record is.

Doing it without downtime#

"Zero downtime" does not mean the change is instant — it means no message is ever bounced or lost while DNS propagates. You get there by giving the old and new providers a deliberate overlap, not a hard switch.

Lowering the MX TTL ahead of time shrinks the propagation window; keeping both mailboxes live through it means mail delivered to either server has somewhere to land. Forwarding residual mail from the old provider to the new one — or a final IMAP catch-up pass — closes the gap so nothing is stranded on the old server after the change settles.

Test on a subdomain first. Point a routing subdomain such as mail-test.yourdomain.com at the new provider's MX and send real messages through it before touching the root domain's record. It proves the new mailboxes, SPF and DKIM work while the blast radius is zero.

Cut over during your quietest hours — a Friday evening or weekend for most teams — so the propagation window overlaps the least mail. Run one canary mailbox a day ahead of the rest, so a broken DKIM record or a missing alias surfaces on one inbox instead of the whole domain.

Watching both inboxes during the overlap#

This migration moves the mailbox; it does not choose the client you read it in. And a domain cutover is exactly the moment that question comes up, because for a week or two some of your addresses are settling on the new server while residual mail still trickles into the old one, and someone has to watch both.

AI Emaily connects to Gmail, Outlook and any IMAP mailbox through the same account model this migration already sets up, so it shows the old and the new provider in one unified inbox while delivery converges — you're not logging into two webmails to make sure nothing was missed, with undo and an audit trail on every action and no training on your mail. It will not perform the migration for you; the steps above do that. We build AI Emaily, and we name it here because "which inbox do I watch during the overlap" is a real question this plan creates.

Frequently asked

Nafiul Hasan

Written by

Nafiul Hasan

Nafiul Hasan is an entrepreneur and AI automation system builder with 10+ years of experience turning messy, manual workflows into reliable automated systems. He designs and ships AI enterprise solutions end-to-end — the agent logic, the data plumbing, and the product people actually use — and founded AI Emaily to give busy professionals their attention back. He writes here from the builder's seat: what works, what breaks, and how to put AI to work without giving up control.

EntrepreneurAI Automation System BuilderAI EnthusiastBuilds AI Enterprise Solutions10+ years experience
More from Nafiul
Ready when you are

Migrated the domain — now watching two inboxes?

See how AI Emaily shows your old and new provider in one unified inbox while delivery converges.

  • 7-day free trial
  • Cancel anytime
  • Every provider