I migrated from MXroute + a self-hosted Radicale stack to Fastmail (without losing a single email)

The deep, human, technical playbook
Email migrations look easy right up until they’re not.
Usually it’s not the big stuff that gets you. It’s the small, quiet mistakes. The kind that don’t show up as bright red errors, they just manifest as “why is nothing arriving?” while every checklist item appears green.
I recently migrated a custom-domain setup from an independent email host (MXroute) and a self-hosted CalDAV/CardDAV stack (Radicale) to Fastmail. I did it in a way that keeps you in control: build the landing zone first, move data while the old system is still live, then flip mail flow last.
This is the complete, technical, end-to-end process, written as a story you can follow, not a vendor brochure.
TL;DR (the whole migration in one pass)
Here’s the sequence that kept everything boring (and boring is the goal):
- Create a Fastmail account, enable MFA, and generate app passwords for IMAP/SMTP/CalDAV/CardDAV.
- Add your domain in Fastmail, without changing DNS. Create users and aliases first.
- Move historical mail while MX still points to your old provider:
— either use Fastmail’s import tools,
— or (my preference) add both accounts to Apple Mail and drag folders across. - Apply Fastmail DNS records at your real DNS provider (not in Fastmail unless your nameservers are there):
— MX → `in1-smtp.messagingengine.com` + `in2-smtp.messagingengine.com`
— SPF → `include:spf.messagingengine.com`
— DKIM → the Fastmail-provided CNAME selectors (fm1/fm2/fm3/mesmtp)
— DMARC → start with `p=none` during migration - Verify inbound + outbound mail and alias sending/receiving.
- Move contacts and calendars from Radicale to Fastmail via CardDAV/CalDAV (or export/import vCard + ICS).
- Keep the old provider running for a week, then decommission safely.
If you do it in that order, you reduce the odds of surprise downtime to near zero.
Fastmail referral If you want to support my work and sign up via my Fastmail referral link:
https://join.fastmail.com/72bcc1ae
(You don’t pay extra — it’s just a referral. If you do sign up, thanks. It funds future “I broke it so you don’t have to” projects.)
Why I moved (real reasons)
I didn’t leave my previous setup because it was terrible. I left because it was almost great and “almost great” is a dangerous state. It’s good enough to keep, but annoying enough that you keep thinking about it.
I originally landed with a big vendor for email because it’s effortless. But the longer I stayed, the more I disliked the tenant overhead, the ecosystem gravity, and the sense that email was becoming “a feature of everything else” instead of a reliable, portable service.
So I moved to an independent email host.
That was a breath of fresh air. The company’s mission, policies, and anti-abuse stance were genuinely refreshing. I even bought a multi-year plan, the kind of commitment you make when you’re sure you’ve found “the one.”
And then reality did what it always does: it showed up in your daily workflow.
The webmail experience wasn’t for me. Spam filtering worked, but felt fragmented across multiple portals and settings pages. And despite tuning rules and constantly adjusting thresholds, spam still slipped through often enough to become a daily annoyance.
None of this was catastrophic. There was no single dealbreaker. It was just a steady drip of friction.
At some point you realize: email is plumbing. If you notice it every day, something is wrong.
That’s when Fastmail entered the picture.
Fastmail appealed to me for practical, boring reasons:
- It’s built around open standards (IMAP/SMTP, CalDAV/CardDAV, WebDAV).
- You’re a paying customer, not an advertising target.
- Their Apple setup experience is unusually smooth (profiles/QR codes).
And boring is exactly what you want from email. The only “excitement” I want from my inbox is when someone pays an invoice.
Before vs after (high-level architecture)
Before
- Email hosted at MXroute
- DNS hosted at a registrar/DNS provider (nameservers unchanged)
- Contacts + calendars hosted on Radicale (self-hosted CalDAV/CardDAV)
- Clients: Apple Mail (macOS), Mail (iOS), Contacts/Calendar on both
After
- Email hosted at Fastmail
- DNS still hosted at the registrar/DNS provider
- Contacts + calendars moved to Fastmail
- Same clients, new endpoints + app passwords
The migration mindset: make it boring, phase by phase
The biggest risk in an email migration isn’t the amount of mail. It’s sequence.
If you flip DNS too early, you break inbound mail while you’re still moving data. If you rely entirely on automation, you may not notice what didn’t migrate until weeks later, when you suddenly need that one message from 2019.
So I followed one rule:
Build first. Migrate data second. Flip mail flow last.
That’s it. Everything below is just that principle made concrete.
Phase 1: Secure Fastmail and build your landing zone
Billing + MFA first
Before anything else, I set up billing and enabled multi-factor authentication. Email is the master key to most accounts; treating it casually is how people end up spending a weekend negotiating with support queues.
App passwords: what they are and why they matter
Fastmail requires app passwords for IMAP/SMTP/CalDAV/CardDAV/WebDAV access. You can’t use your normal Fastmail password for these protocols.
Think of app passwords like purpose-built tokens:
- one token for macOS Mail,
- one for iPhone,
- one for Contacts/Calendar sync,
- revokeable if something leaks.
This is good security, but it also means you should handle them like you would handle a password manager export: carefully, and preferably never in a screenshot. (Ask me how I know. Actually, don’t. Let’s keep this article employable.)
Add your domain inside Fastmail (no DNS changes yet)
In Fastmail admin, I added the domain and created users and aliases. At this stage Fastmail will often warn that the domain isn’t active yet. That’s fine. The goal here is to create a fully prepared target environment before any traffic switches over.
Phase 2: Client/server settings (copy/paste)
Fastmail’s standard endpoints are simple and consistent. Use SSL/TLS everywhere.
Email (IMAP/SMTP)
IMAP server: imap.fastmail.com
IMAP port: 993
IMAP security: SSL/TLS (NOT STARTTLS)
IMAP username: your Fastmail login email (full address, includes domain)
IMAP password: app-specific password
IMAP path prefix: (leave blank)
SMTP server: smtp.fastmail.com
SMTP port: 465
SMTP security: SSL/TLS (NOT STARTTLS)
SMTP auth: PLAIN
SMTP username: your Fastmail login email (full address, includes domain)
SMTP password: app-specific password
SMTP port: 587
SMTP security: STARTTLS
Contacts (CardDAV)
CardDAV server: https://carddav.fastmail.com/
Username: your Fastmail login email (full address, includes domain)
Password: app-specific password
Calendars (CalDAV)
CalDAV server: https://caldav.fastmail.com/
Username: your Fastmail login email (full address, includes domain)
Password: app-specific password
A subtle but important note: your login username is the account you originally signed up with. Aliases may work for receiving and sending, but not for authentication.
Phase 3: Migrating mail (I chose the manual, deterministic route)
Fastmail has import tools. They’re fine. I didn’t use them.
I prefer a migration where I can see the data move. So I did what feels almost offensively analog in 2026:
- Add the old provider account to Apple Mail (IMAP)
- Add the Fastmail account to Apple Mail (IMAP with an app password)
- Drag folders and messages from old → new
- Was it the fastest method? No.
Was it the most confidence-inspiring? Absolutely.
The trick is patience: let Apple Mail finish syncing and uploading. Interrupting big moves mid-flight is how you get missing messages and mystery duplicates.
Phase 4: DNS cutover (the part that can ruin your day)
This is where migrations earn their reputation. And the reason is simple:
Your email provider can be perfectly configured, but your DNS can still be wrong.
In my case, DNS was hosted at a registrar/DNS provider, not at Fastmail. That means Fastmail’s “DNS settings” screen is a reference, not a control panel. You have to apply the records where your nameservers actually live.
The “everything looked right but nothing arrived” moment
I had already configured DKIM, SPF, and DMARC. Everything looked close to ready.
But inbound mail still didn’t arrive.
The problem was embarrassingly simple: there were no MX records.
Once I added MX records, everything snapped into place.
DNS records you need for Fastmail
MX (this is the actual inbound routing)
example.com. 3600 MX 10 in1-smtp.messagingengine.com.
example.com. 3600 MX 20 in2-smtp.messagingengine.com.
SPF (start permissive, tighten later)
During migration, I recommend being gentle while you test devices:
example.com. 3600 TXT "v=spf1 include:spf.messagingengine.com ?all"
Softfail:
"v=spf1 include:spf.messagingengine.com ~all"
"v=spf1 include:spf.messagingengine.com -all"
DKIM (CNAME selectors; copy exact values from Fastmail)
Fastmail will give you selectors, typically fm1, fm2, fm3, plus mesmtp:
fm1.\_domainkey.example.com. 3600 CNAME fm1.example.com.dkim.fmhosted.com.
fm2.\_domainkey.example.com. 3600 CNAME fm2.example.com.dkim.fmhosted.com.
fm3.\_domainkey.example.com. 3600 CNAME fm3.example.com.dkim.fmhosted.com.
mesmtp.\_domainkey.example.com. 3600 CNAME mesmtp.example.com.dkim.fmhosted.com.
DMARC (monitor first)
Start in monitoring mode:
\_dmarc.example.com. 3600 TXT "v=DMARC1; p=none;"
Phase 5: Verification: the “real tests” that matter
A DNS dashboard saying “configured” is not a test. It’s a suggestion.
The tests that matter:
- Send mail from an external mailbox (Gmail/work) to your domain.
- Send mail from Fastmail to an external mailbox.
- Reply in both directions.
- Verify aliases receive properly.
- If you use “send as” identities: verify you can send from aliases too.
Once all of that worked consistently across macOS and iOS, I stopped worrying.
Phase 6: Contacts and calendars (Radicale → Fastmail)
My contacts and calendars were on Radicale. If you’re using Radicale, you already know the trade-off: it’s beautifully minimal, but you own the details.
Fastmail is the opposite: standards-based, but with much more polish and crucially, very smooth setup on Apple devices. I chose to migrate them into Fastmail since I was already paying for it otherwise I would still be using Radicale.
The clean migration approach
I set up Fastmail Contacts/Calendars on my Mac and iPhone (Fastmail provides downloadable configuration profiles, and on iPhone there’s even a QR-based flow).
Then I migrated from Radicale using the simplest reliable method:
- Connect Radicale and Fastmail on macOS,
- Then copy/move the data across and let sync propagate it everywhere.
If you prefer explicit file-based migrations:
- Contacts: export vCard
(.vcf)from Radicale and import into Fastmail - Calendars: export ICS
(.ics)per calendar and import into Fastmail
The key is choosing a single “master” afterwards. If Radicale and Fastmail both keep syncing, you’re effectively running two sources of truth, and that’s how duplicates are born.
Decommissioning: How to shut down old services without regret
Once everything was stable, the temptation was to immediately cancel everything old.
Don’t.
Email delivery has retries. Some systems cache MX records longer than you’d expect. Some devices keep old SMTP settings forever like a grudge.
So the safe shutdown plan is:
- Keep the old email provider active for ~7 days
- Keep Radicale backed up and available while you verify
- Then remove old accounts from devices
- Then shut down old services
It’s like removing scaffolding: you don’t do it while the paint is still wet.
What I learned (the surprisingly human part)
- The biggest migration failures are “small and quiet.” Missing MX records can make you feel crazy.
- Open standards are the real escape hatch. IMAP/SMTP + CalDAV/CardDAV means you’re never truly trapped.
- The best email is the one you stop thinking about.
Or, to put it differently: I moved providers so my inbox could be boring again. And in email, boring is the highest form of success.
Also: the migration was “zero downtime” in the same way a gym session is “easy”, it becomes easy right after you finish it.
One more time: referral link
If you want to try Fastmail and support my writing:
https://join.fastmail.com/72bcc1ae