Migrate From Migadu to JustEmails: Multi-Domain IMAP Migration
Step-by-step guide to migrate your mailboxes from Migadu to JustEmails without losing mail. Both use flat-fee pricing — the cutover is cleaner than you'd expect.
Step-by-step guide to migrate your mailboxes from Migadu to JustEmails without losing mail. Both use flat-fee pricing — the cutover is cleaner than you'd expect.
The outgoing message counter hit 18 of 20 at 2pm on a Tuesday.
I'd been running three client domains on Migadu's Micro tier for eight months. It worked great — until a freelance project required sending 40 emails in one afternoon to different vendors. Twenty a day is the whole Micro allowance, so that single afternoon was two days of quota on its own. Add the project updates, a newsletter draft for review, and the usual back-and-forth with my accountant, and by 3pm I was rationing replies like they cost money.
(They kind of did.)
Look, Migadu's pricing model makes total sense for people who mostly receive email. If your busiest day stays under 20 sends, their Micro tier — listed at 19 a year — is unbeatable. But the moment you cross that threshold, even once, you're either climbing to the next rung or holding your breath.
This guide walks through migrating from Migadu to JustEmails. Both use flat-fee pricing with unlimited domains and unlimited mailboxes, so the migration is structurally clean. No per-user seat conversions. No license juggling. Just move the mail and swap the DNS. If you're comparing the two before deciding, our JustEmails vs Migadu breakdown covers pricing and feature differences.
All your Migadu mailboxes — messages, folders, sent mail, drafts — transferred to JustEmails. MX records pointed at JustEmails servers. SPF/DKIM/DMARC configured. Your mail clients updated with new credentials. And no more outgoing message math.
Before starting, you'll need:
One thing Migadu handles well: IMAP credentials. You'll find them in your Migadu admin panel under each mailbox. Write down the server hostname and passwords before you start — you'll need them for the sync.
Multi-domain migrations need one more number up front. Sends are capped per account per day — 20/day for the first week, 200/day in the second, 500/day from day 15 on — with mailbox sends and API sends counted against the same number. Warm-up is measured from domain verification rather than signup, so each domain you bring over starts at 20/day of its own, however old the account is. Stagger the domains if you have several and want headroom on each.
Log into JustEmails. Add your domain first — the dashboard walks you through verification with a TXT record. Once verified, create a mailbox for every address you're migrating.
Match the addresses exactly. If someone's invoices@yourcompany.com in Migadu, create invoices@yourcompany.com in JustEmails. Mismatched addresses mean broken forwards and confused clients.
JustEmails generates IMAP/SMTP credentials for each mailbox automatically. Keep these handy — you'll use them for both the sync and the mail client setup later.
Don't touch MX records yet. We're syncing first, cutting over later.
imapsync copies mail between any two IMAP servers. It preserves folder structure, read/unread flags, and dates. On Ubuntu/Debian:
sudo apt update && sudo apt install imapsync
On macOS with Homebrew:
brew install imapsync
On Windows, WSL is your best bet. Native Windows installs exist but tend to be finicky. (I wasted two hours on a native install once. Just use WSL.)
Verify it's installed:
imapsync --version
You want version 2.x or higher. Older versions have connection timeout bugs that'll frustrate you on larger mailboxes.
Here's the command template. Replace placeholders with your actual credentials:
imapsync \
--host1 imap.migadu.com --port1 993 --ssl1 \
--user1 "you@yourdomain.com" --password1 "migadu-password" \
--host2 mail.justemails.app --port2 993 --ssl2 \
--user2 "you@yourdomain.com" --password2 "justemails-password"
That's it. No special flags needed. Both providers use standard IMAP folder naming, so there's no label-to-folder translation like you'd deal with migrating from Gmail.
Run this for every mailbox. For multiple mailboxes, a bash loop speeds things up:
while IFS=, read -r user migpass jepass; do
imapsync \
--host1 imap.migadu.com --port1 993 --ssl1 \
--user1 "$user" --password1 "$migpass" \
--host2 mail.justemails.app --port2 993 --ssl2 \
--user2 "$user" --password2 "$jepass"
done < users.csv
The CSV has three columns: email, Migadu password, JustEmails password. Not elegant, but it works.
First sync time depends on mailbox size. A mailbox with 2GB of mail takes 30-60 minutes on a decent connection. Let it run. imapsync is resumable — if it crashes, just run the same command again and it picks up where it left off.
Before touching MX records, drop the TTL on your existing records. If your TTL is 86400 (24 hours), mail servers will cache the old MX for a full day after you change it.
In Cloudflare:
Wait 24 hours. Yes, really. The old TTL needs to expire from caches worldwide before the new short TTL takes effect. Skipping this step is how people end up with split delivery for days.
While waiting, grab the DNS records you'll need from JustEmails. Your domain settings show:
Screenshot or copy them. You'll need them tomorrow.
This is the actual cutover. Deep breath. It's simpler than it looks.
Delete the old Migadu MX records. They look something like:
aspmx1.migadu.com (priority 10)
aspmx2.migadu.com (priority 20)
Add the JustEmails MX record. There's one, not a pair:
mail1.justemails.app (priority 10)
(Your JustEmails dashboard shows the same value under the domain's DNS tab — worth pasting from there rather than from this page.)
Your existing SPF record probably includes Migadu:
v=spf1 include:_spf.migadu.com ~all
Replace with JustEmails:
v=spf1 a:mail1.justemails.app ~all
Note the mechanism: it's a:, not an include. It authorises whatever IP mail1.justemails.app resolves to, which is the host your mail leaves from. If you've seen an include: variant for JustEmails in an older guide, don't use it — an include pointing at a name with no TXT record authorises nothing, and the failure is invisible in a DNS panel.
If you're using other senders (Mailchimp, your app's transactional email, whatever), keep those:
v=spf1 a:mail1.justemails.app include:servers.mcsv.net ~all
One SPF record total. Multiple SPF records break validation entirely — the RFCs are clear on this and yet people keep doing it. I've debugged this for other teams more times than I want to admit. It's always the same conversation. If you're setting up email from scratch, our custom domain email setup guide covers the full DNS picture.
JustEmails generates DKIM keys automatically. Add the CNAME records from your dashboard:
je1._domainkey.yourdomain.com → je1.dkim.justemails.app
je2._domainkey.yourdomain.com → je2.dkim.justemails.app
Delete the old Migadu DKIM records if you still have them. They're dead weight now.
Don't tighten your DMARC policy during migration. If you're at p=reject, consider temporarily dropping to p=quarantine for a week. Watch for alignment failures.
The one thing to check: make sure your rua reporting address still works. If it was pointing at a Migadu mailbox you're migrating, the reports will continue flowing to the same address — just delivered by JustEmails now. Our guide on ramping DMARC to p=reject safely covers policy progression if you want to tighten up after things settle.
Don't trust "instant" propagation. Check with MXToolbox:
https://mxtoolbox.com/SuperTool.aspx?action=mx:yourdomain.com
You should see the JustEmails MX servers. Check SPF and DKIM too. If anything shows old Migadu records, wait longer. This is why we lowered TTL yesterday.
Send a test email from an external account — personal Gmail, Outlook, whatever — to one of your migrated addresses. Verify it arrives in JustEmails, not Migadu.
Mail that arrived at Migadu between your initial sync and the MX cutover is still sitting there. Run imapsync again for every mailbox:
imapsync \
--host1 imap.migadu.com --port1 993 --ssl1 \
--user1 "you@yourdomain.com" --password1 "migadu-password" \
--host2 mail.justemails.app --port2 993 --ssl2 \
--user2 "you@yourdomain.com" --password2 "justemails-password"
Same command as before. imapsync only copies new/changed messages — it won't duplicate what's already synced. This delta sync is fast. Minutes, not hours.
Your team's mail clients need new server settings.
Incoming (IMAP):
Outgoing (SMTP):
Outlook, Apple Mail, Thunderbird, mobile apps — all of them need updating. The Migadu credentials won't suddenly stop working (Migadu stays active), but new mail lands in JustEmails now.
Budget 10-15 minutes per person for hand-holding. Some folks figure it out from a screenshot. Others need a screen share. (If I sound jaded, it's because I've been on too many "just change the server field" calls that turned into 45-minute tech support sessions.)
Don't cancel Migadu immediately. Some enterprise mail servers cache MX records aggressively — even with short TTLs, you might see occasional messages land at Migadu for a few days.
Run imapsync one more time at day 7. If the delta sync shows zero new messages, you're clean. Log into Migadu, verify the mailboxes are quiet, and cancel.
Migadu's ladder runs from 19 at Micro to 990 at Maxi as listed on their pricing page, against our flat $49 — and since we can't confirm from their page whether those figures are euros or dollars, we're not going to hand you a savings number. Treat this migration as being about the constraint, not the sticker: no volume tier to climb, no counter to watch, no rationing sends during a busy week. For a deeper cost breakdown, see our business email pricing survey.
imapsync fails with "NO LOGIN"
Check your Migadu credentials. If you changed passwords recently or have 2FA enabled, regenerate credentials in Migadu's control panel. Also verify the IMAP server hostname — it's imap.migadu.com, not mail.migadu.com.
DKIM fails in MXToolbox
The CNAME records need 15-60 minutes to propagate. If they still show missing after an hour, double-check the record names. The underscore in _domainkey trips people up. It's je1._domainkey.yourdomain.com, not je1.domainkey.yourdomain.com.
Mail arrives at Migadu after cutover
DNS propagation isn't complete. Some corporate mail servers cache MX records longer than TTL suggests. Keep Migadu active and run delta syncs daily until the flow stops. This typically resolves within 48-72 hours.
Folder names appear mangled
Rare with Migadu-to-JustEmails since both use standard IMAP. But if you see weirdness, check for special characters in folder names. Ampersands, slashes, and non-ASCII characters occasionally cause hiccups. Rename the affected folders before the next sync.
Once the migration settles, you might want to explore a few things:
Transactional email API — JustEmails bundles 1,000 sends/month free. If you were using a separate transactional provider alongside Migadu, you might be able to consolidate. Our SMTP vs API comparison breaks down when each makes sense.
Team access — If you're managing email for clients or colleagues, JustEmails includes RBAC (Owner/Admin/Member/Viewer roles) at $2/member/month. Migadu's admin access is designed for solo operators.
Storage scaling — JustEmails includes 10 GB base, with 100 GB blocks at $99/year each. If your Migadu mailboxes were pushing storage limits on lower tiers, you've got room to grow.
For multi-domain operators who hit Migadu's outgoing limits or wanted simpler team management, this migration unlocks both. The actual cutover is less dramatic than it sounds — two flat-fee providers using standard protocols means the hard parts (label conversion, quota negotiation, seat licensing) don't exist.
Questions? We're at support@justemails.app. And if you're curious about other migration paths, we've written similar runbooks for Google Workspace and Microsoft 365. Managing analytics across your domains? JustAnalytics pairs well with multi-domain email setups — same flat-fee model, no per-site charges.
Most migrations complete in 2-3 days. Day 1 is setup and initial IMAP sync. Day 2 is TTL lowering and MX cutover. Day 3 is verification and delta sync. The hands-on work is about 2 hours total — the rest is waiting for DNS propagation and letting the sync run. Unlike migrations from Google Workspace, both Migadu and JustEmails use standard IMAP, so there's no label-to-folder translation weirdness.
Yes. Migadu uses standard IMAP folders, and so does JustEmails. No special flags needed in imapsync — your Sent, Drafts, Archive, and custom folders transfer intact. The only caveat is folder names with special characters. If you have a folder named 'Clients/2025 & Prior', the ampersand might render differently. Check after the first sync and rename if needed.
Yes. Add all domains to JustEmails first, create the mailboxes, then run imapsync in parallel — one process per mailbox. Both Migadu and JustEmails support unlimited domains on flat-fee plans, so you're not paying per-domain on either side. We've seen teams migrate 8 domains in a single afternoon.
If you lower your MX TTL before the cutover, the gap is usually under an hour. During that window, some servers might still route to Migadu while others hit JustEmails. Keep Migadu active for 7 days after cutover and run a delta sync to catch any stragglers. In practice, we rarely see more than 2-3 messages land in the old location during a well-timed cutover.
Unlimited custom domain email hosting for $49/year flat — unlimited domains, unlimited mailboxes, 10 GB storage, full IMAP/SMTP. Built for agencies, freelancers, and anyone managing email across more than one domain.