Should you run your own email server or keep using Resend? For most teams sending under 100k emails a month, Resend is cheaper and much less work. Resend costs $20–35 a month at that volume (as of October 2026); a self-hosted server costs a VPS plus your time, or around $99 a month if someone manages it for you. Self-hosting starts to win on cost roughly above 200k emails a month, and wins on control, privacy and multi-domain sending at any volume.
We set up and run self-hosted servers for a living, so we have an obvious interest here. That is exactly why we want to be plain about where Resend is the better choice.
Resend prices are from third-party trackers as of October 2026; confirm on Resend's pricing page.
Total monthly cost: self-hosted email vs Resend
| Emails/month | Resend (as of Oct 2026) | Self-hosted, you run it | Self-hosted, managed |
|---|---|---|---|
| Under 3,000 (≤100/day) | Free | VPS (typically $5–20) | ~$99 + VPS |
| 50k | Pro: $20 | VPS (typically $5–20) | ~$99 + VPS |
| 100k | Pro: $35 (Scale: $90) | VPS (typically $5–20) | ~$99 + VPS |
| 200k | Scale: $160 | VPS (typically $5–20) | ~$99 + VPS |
| 500k | Scale: $350 | VPS (typically $5–20) | ~$99 + VPS |
| 2.5M | Scale: up to $1,150 | VPS, possibly a larger one | ~$99 + VPS |
| One-time cost | None | Your time, or $499 Server Setup | $499 setup |
Resend Pro overage is $0.90 per 1,000. Resend marketing email is billed separately by contacts (around $40/month for 5k). Self-hosted servers have no per-email fee at any volume.
The "you run it" column looks cheapest by far, but it hides the biggest cost: your time. The rest of this page is about that.
Where the break-even actually is
Here is the plain version:
- Up to about 100k emails a month, Resend wins on cost. Paying ~$99/month for a managed server to replace a $20–35 bill only makes sense if you want control, privacy or many domains.
- Around 200k and above, self-hosting usually wins on cost. Resend Scale is $160 at 200k and $350 at 500k, while a managed server stays flat.
- If you run it yourself after a one-time setup, there's no monthly fee beyond the VPS. That is the cheapest route at any volume, if you have the skills and time.
Try your own numbers in the email cost calculator. We also wrote a longer piece on whether self-hosting email is worth it.
The effort side: what self-hosting really involves
Setup
A solid outbound setup is more than installing Postfix. Ours is Ubuntu 26.04 LTS with Postfix 3.10, OpenDKIM (2048-bit keys, one per domain), postsrsd for forwarding, Dovecot for SMTP authentication only, fail2ban, and Let's Encrypt certificates that reload Postfix on renewal. Then DNS: A, MX, SPF, DKIM, DMARC and a PTR record set at the VPS provider.
You also need a VPS that allows outbound port 25. AWS and some other clouds block it by default; OVH didn't in our case. Check with your provider before you build.
Small details bite. One we hit: Postfix virtual alias files don't allow a trailing # comment on an entry line. The words of the comment are read as extra recipients, so mail quietly goes to addresses you never meant. Nothing warns you; you find out from the logs.
Our Postfix on Ubuntu guide is the full walkthrough. Experienced admins can do it in a day or two; the first time, expect longer.
Warm-up
This is the cost people underestimate. A new IP and a new or dormant domain have no reputation, so you start with tens of emails a day to engaged recipients and increase over two to six weeks.
What that looks like in practice: on our first day, two near-identical test emails to Gmail from two of our domains landed differently. One went to Inbox; the other went to Spam as "similar to messages identified as spam in the past", even though SPF, DKIM and reverse DNS all passed. That is normal for a cold start. We kept volume low for about two weeks, with Postfix itself rate-limiting the newer stream. See the IP warm-up guide.
With Resend, you skip this: you send from IPs that already have reputation.
Monitoring
Once running, a mail server needs watching:
- DNS drift: someone edits a record and DKIM or SPF quietly breaks. (We once saw a DKIM TXT record pasted twice, which caused "multiple DNS replies" and broke signing.)
- Blocklists, read correctly. Spamhaus refuses queries from public resolvers and returns 127.255.255.x, which naive checkers report as "listed". UCEPROTECT level 3 lists whole provider networks, which isn't a listing for your IP.
- TLS certificate expiry and renewal.
- Mail queue growth, which signals delivery problems.
- DMARC aggregate reports, to spot spoofing or broken alignment.
Resend watches its own infrastructure; on your own server, this is your job, or a monitoring service's.
On-call and updates
If your server goes down, your app's emails fail. You need security updates, alerts, and a plan. Our own approach is to keep the old provider as a fallback: a blank SMTP host environment variable sends mail back through the provider. That turns an outage into a config change rather than an emergency.
What Resend does well
To be fair to Resend, here is what you'd give up or rebuild:
- Developer experience: a clean API and React Email built into the SDK. (You can still render React Email to HTML and send it over SMTP.)
- Dashboard and logs: searchable history of what was sent.
- Webhooks for bounces and complaints, and built-in suppression.
- Established IP reputation from day one, with no warm-up.
- No servers to patch.
If those matter more to you than per-email cost or control, Resend is the right choice and we'd tell you so.
What self-hosting does well
- No per-email fees, so cost stays flat as you grow.
- Your own IP and reputation, not shared with other senders.
- Your data on your server: message logs and content don't sit with a third party.
- Multi-domain on one box: we run two domains on two IPs on one server, with Postfix picking the outbound IP per sender domain.
- Inbound too: forwarding and DMARC reports on the same server.
Which should you choose?
Stay on Resend if: you send under ~100k emails a month, nobody on your team wants to look after a server, or you rely on React Email, webhooks and the dashboard.
Self-host if: you send more than ~200k a month, need several domains with separate reputations, have privacy or data-location requirements, or simply prefer owning your infrastructure and have someone to look after it.
In between? You can self-host your main stream and keep Resend as a fallback. That's what we did when we moved our own domains in August 2026: the per-email bills went away, and the VPS was one we already ran. Our Resend migration guide shows each step.
If you want a server built and handed over, or run for you with monitoring, see Server Setup and Managed Server on our pricing page or read about the managed email server.