Consolidate Email Providers: Mailboxes + API on One Host (2026)
Three email bills, three DNS surfaces. Here's how to collapse them.
By JustEmails Platform Team
Last month I helped a friend audit his SaaS infrastructure. Three-person team, one product, reasonably lean. Then we got to email — and the sprawl of providers he was juggling to consolidate email providers onto one domain host.
Google Workspace for the team mailboxes. SendGrid for transactional (password resets, receipts, the usual). Mailchimp for the newsletter. And some random SMTP relay his developer set up for the contact form because "it was faster than figuring out SendGrid's template system."
Four providers. Four bills. Four sets of DNS records crammed into one SPF statement that was dangerously close to the 10-lookup limit.
"This is insane," I said.
"I know," he said. "But migrating sounds worse."
It's not. And I'm going to walk you through it.
What You'll Have at the End
A single provider handling your team mailboxes (IMAP/SMTP, unified inbox, the works) and your application's transactional email (REST API, delivery webhooks, message logs). One DNS surface. One SPF include. One bill.
We're the JustEmails team — JustEmails is built by Velocity Digital Labs, the same team behind JustAnalytics for privacy-first web analytics and ClickzProtect for ad fraud protection. We built JustEmails specifically because this consolidation problem kept coming up. Agencies with 20 client domains paying per-user Workspace fees and per-email SendGrid fees. SaaS founders juggling three dashboards to debug why a password reset didn't arrive.
The solution isn't complicated. It just requires doing things in the right order.
Prerequisites
Before you start:
- Admin access to your current mailbox provider (Google Workspace, Zoho, Microsoft 365, whatever)
- Access to your DNS provider (Cloudflare, Namecheap, Route 53)
- Admin access to your transactional email provider (SendGrid, Postmark, SES, Resend)
- A list of all places in your codebase that send email (grep for
smtp,sendgrid,postmark, your current provider's SDK name) - A JustEmails account — start the 7-day free trial if you haven't
And honestly? A Saturday afternoon. This isn't a 15-minute job, but it's not a week either.
Step 1: Audit Your Current Email Surface
Before you consolidate, you need to know what you're consolidating. Pull up your DNS records and find every email-related entry:
MX records — These tell the world where to deliver mail for your domain. You probably have 3-5 pointing at Google or Microsoft.
SPF record — One TXT record starting with v=spf1. Count the include: statements. Each one is a DNS lookup. You get 10 total before SPF breaks.
DKIM records — Look for _domainkey in the record name. You might have multiple if you've added transactional providers over time.
DMARC record — Should be at _dmarc.yourdomain.com. Check where aggregate reports (rua) are going.
Now list your providers:
| What | Provider | Monthly cost | DNS includes |
|---|---|---|---|
| Team mailboxes | Google Workspace | $14/user × 3 = $42 | _spf.google.com |
| Transactional | SendGrid | $19.95 (Essentials) | sendgrid.net |
| Contact form | Random SMTP | $0 (using personal Gmail) | (probably missing) |
| Newsletter | Mailchimp | $13 (free tier expired) | servers.mcsv.net |
That's $75/month for a three-person team's email. And three SPF includes eating into your lookup budget.
(Side note: that contact form running through personal Gmail? That's a deliverability time bomb. The From: address doesn't match the sending domain. It'll get spam-foldered eventually.)
Step 2: Consolidate Email Providers — Migrate Transactional First
Here's the counterintuitive move: don't start with mailboxes. Start with transactional.
Why? Three reasons:
-
Lower risk. If a transactional email fails, you see it immediately in your logs. If a mailbox migration goes wrong, mail vanishes into the void and you don't know for hours.
-
Faster feedback loop. You can test the API with a single password reset before switching your whole app.
-
Simpler rollback. Changing an API endpoint in code is a one-line fix. Unwinding a mailbox migration involves DNS propagation and IMAP syncing.
Setting Up the Transactional API
In JustEmails, transactional email is built in — 1,000 sends/month included in the base $49/year plan. If you need more, add $25/year per 10,000/month tier.
The API is REST-based with idempotency keys (so you can safely retry without sending duplicates) and webhook delivery notifications.
Here's a basic send:
curl -X POST https://api.justemails.app/v1/send \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "noreply@yourdomain.com",
"to": "user@example.com",
"subject": "Your password reset link",
"html": "<p>Click <a href=\"https://...\">here</a> to reset.</p>",
"idempotency_key": "pwd-reset-user123-1718150400"
}'
The idempotency key matters. If your app retries on timeout, you won't accidentally send three password reset emails. I've debugged that exact issue on other platforms — it's not fun explaining to users why they got spammed by their own app.
Swapping Out SendGrid (or Postmark, or SES)
Find every place in your codebase that calls your current transactional provider. Common patterns:
# Python/SendGrid
import sendgrid
# Node/Postmark
const postmark = require('postmark')
# Ruby/SES
ses = Aws::SES::Client.new
Replace with HTTP calls to the JustEmails API. Or if you prefer, use SMTP relay — same credentials as your mailboxes, port 587, STARTTLS.
Run your test suite. Send yourself a password reset. Check the message logs in JustEmails. Once it's working, deploy.
Don't delete your SendGrid account yet. Keep it around for 30 days in case something weird surfaces. We'll clean up DNS later. If you're also running analytics, check out JustAnalytics — same VDL ecosystem, same philosophy of simplicity over sprawl.
Step 3: Migrate Team Mailboxes
Now the mailboxes. This is the bigger lift, but honestly? We've done it enough times that the steps are predictable. The scary part is mostly in your head.
Create Mailboxes in JustEmails
Log into JustEmails, add your domain (verify with a TXT record), and create mailboxes matching your current setup. sarah@yourdomain.com stays sarah@yourdomain.com.
JustEmails gives you unlimited mailboxes on the $49/year plan. No per-user fees. If you're coming from Workspace where you're paying $7-$18 per user per month, this is where the math gets interesting.
IMAP Sync Historical Mail
Use imapsync to copy mail from Google/Microsoft/Zoho to JustEmails. The full walkthrough is in our Google Workspace migration guide, but the short version:
imapsync \
--host1 imap.gmail.com --port1 993 --ssl1 \
--user1 "sarah@yourdomain.com" --password1 "google-app-password" \
--host2 mail.justemails.app --port2 993 --ssl2 \
--user2 "sarah@yourdomain.com" --password2 "justemails-password" \
--gmail1 --automap --exclude "^\[Gmail\]/All Mail$"
Run this for each mailbox. First sync takes hours for large mailboxes. Let it run overnight.
Update DNS
Once mail is synced, you're ready for the MX cutover. But first — lower your MX TTL to 300 seconds and wait 24 hours. Skipping this is how you lose mail to caching.
Then:
- Delete old MX records (Google's
ASPMX.L.GOOGLE.COMfamily, or whatever your current provider uses) - Add JustEmails MX records (check your dashboard for exact values)
- Update SPF to
include:spf.justemails.app— remove the old provider's include - Add JustEmails DKIM CNAME records
- Keep DMARC as-is (don't tighten policy during migration)
Wait for propagation. Test with an external email. Run imapsync again to catch any mail that landed at the old provider during the gap. (Yes, you'll be anxious. Yes, it'll probably be fine. No, I can't promise no mail gets lost — DNS propagation is not a precise science.)
Our DMARC enforcement guide covers tightening your policy after the dust settles.
Step 4: Update Mail Clients
Your team's mail apps need new server settings:
IMAP: mail.justemails.app, port 993, SSL/TLS
SMTP: mail.justemails.app, port 587, STARTTLS
Budget 15 minutes per person. Some will figure it out. Others will call you. (You know who they are.)
I'll admit — this is the part I dread. Not because it's hard, but because explaining IMAP vs SMTP to someone who just wants their email to work is its own special form of suffering.
Step 5: Clean Up Old Providers
After 30 days with no issues:
- Cancel Google Workspace / Microsoft 365 / Zoho
- Cancel SendGrid / Postmark / SES
- Remove dead DNS records (old DKIM keys, old SPF includes)
- Run your SPF through a checker — you should now have exactly one include statement
Common Errors and Fixes
SPF permerror after migration
You probably have two SPF records. There can only be one. Merge them:
# Wrong (two records)
v=spf1 include:_spf.google.com ~all
v=spf1 include:spf.justemails.app ~all
# Right (one record)
v=spf1 include:spf.justemails.app ~all
Transactional emails going to spam
Check that your From: domain matches the authenticated domain. If you're sending from noreply@yourdomain.com, make sure JustEmails has yourdomain.com verified with DKIM. Mixing domains triggers spam filters.
Mail client won't connect
Double-check the port. IMAP is 993 (SSL), not 143. SMTP is 587 (STARTTLS), not 25 or 465. Old tutorials sometimes list outdated ports.
imapsync hangs on large mailboxes
Google rate-limits IMAP connections. Add --maxbytespersecond 100000000 to throttle slightly, or run overnight when rate limits are less aggressive.
Look, Google doesn't make this easy. They want you staying on Workspace. The rate limits, the app password hoops, the confusing "less secure apps" settings — it's friction by design. Accept it. Work around it. Move on.
The Math After Consolidation
Before consolidation (our friend's setup):
| Provider | Monthly | Annual |
|---|---|---|
| Google Workspace (3 users) | $42 | $504 |
| SendGrid Essentials | $19.95 | $239 |
| Mailchimp | $13 | $156 |
| Random SMTP | $0 | $0 |
| Total | $74.95 | $899 |
After consolidation:
| Provider | Annual |
|---|---|
| JustEmails ($49 base + $25 for extra transactional tier) | $74 |
| Total | $74 |
That's $825/year back in his pocket. And one login instead of four.
Could he have kept the old setup? Sure. Does email consolidation solve world hunger? No. But $825 buys a lot of coffee, and fewer dashboards means fewer places for things to break at 2am.
Is it worth a Saturday afternoon? Yeah. It is.
Next Steps
If you're managing multiple domains — agency life, portfolio companies, side projects — the consolidation math gets even better. All your domains on one $49/year plan, all your transactional email in one API, all your DNS in one SPF include. Check our flat-fee vs. per-mailbox pricing breakdown to see the numbers for larger setups.
Frequently Asked Questions
Can I really replace SendGrid and Google Workspace with one provider?
Yes, if the provider offers both mailbox hosting and a transactional email API. JustEmails includes 1,000 transactional API emails/month in the base $49/year plan, with additional 10K/month tiers at $25/year each. You get IMAP/SMTP mailboxes for your team and a REST API for your app — same domain, same DNS surface, same bill.
What should I migrate first — mailboxes or transactional email?
Migrate transactional email first. It's lower risk because failures are immediately visible in your app logs, and you can test with a single endpoint before switching everything. Mailbox migration involves user retraining and client reconfiguration, so it's better to tackle that once your transactional flow is proven.
Will consolidating providers affect my deliverability?
Not if you configure SPF, DKIM, and DMARC correctly. The risk with multiple providers is SPF record bloat — you're only allowed 10 DNS lookups per SPF check. Consolidating to one provider with one include statement actually improves your SPF situation. Monitor DMARC aggregate reports for the first week after any DNS change.
How many transactional emails does a typical SaaS need per month?
It varies wildly. A password reset here, a receipt there — most early-stage SaaS apps send under 5,000/month. The 1,000/month included in JustEmails covers basic use. If you're sending onboarding sequences or high-volume notifications, stack $25/year tiers until you hit your ceiling. At $25 per 10K/month, you'd pay $75/year for 30,000 monthly sends — still cheaper than SendGrid's growth plans.
Try JustEmails
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.