Self-Host vs SES, Mailgun, Postmark by Volume
Pick the sending path by daily volume, bounce work, and whether users must read the message. Direct VPS SMTP only wins at tiny, well-authenticated mail.
Netbay Infrastructure Team
Netbay Engineering
On this page
The question is not "can Postfix send mail." It can. The question is who owns IP reputation when Gmail decides you look like a burst of password resets. Volume is the cleanest way to choose among sending yourself, relaying through an ESP, or using the ESP's HTTP API. This is not a Mailcow install guide. It is a volume and operations decision.
Three jobs that look like one
- Transactional: receipts, resets, "someone logged in." Low volume, high importance, must land in the inbox.
- Operational: cron, monitoring, certificate expiry. Tiny volume, you are the only reader, spam folder is annoying but not fatal.
- Bulk: newsletters, drip campaigns. Volume spikes, complaint risk, one-click unsubscribe is required in many jurisdictions.
Mixing all three on a new VPS IP is how transactional mail dies. Keep bulk on an ESP with a separate subdomain (news.example.com) and its own DKIM. Keep transactional on a second subdomain or at least a second ESP stream.
What the three ESPs actually differ on
Amazon SES is cheap at scale, regional, and blunt. You bring bounce and complaint handling via SNS. Sandbox mode blocks sending until you request production. Good default for transactional if you will write the plumbing.
Mailgun is an SMTP-first product with routes, stored logs, and a validation API. Fine when several apps already speak SMTP. Watch the validation add-on cost if you verify every address.
Postmark is opinionated about transactional versus broadcast streams. Deliverability to inbox providers is the product. Price per message is higher. The best default when password resets are the business.
None of them care that your app runs on Intel Xeon Platinum in Lucknow. They care that your domain has SPF, DKIM, DMARC, a suppression list, and a complaint rate under their threshold.
When direct VPS send is honest
Direct send can work for a personal domain, a few dozen messages a day, to people who have mailed you before, with PTR, SPF, DKIM, DMARC reject, and a quiet IP. It is a hobby operations load: blocklist monitoring, warmup, and a mailbox you read. It is a poor fit for a product that just launched and must email 4,000 new users tonight.
Self-hosting the inbox (IMAP) is a separate decision from self-hosting outbound. You can collect mail with Dovecot and still outbound through Postmark. Mixing "I want privacy for my mailbox" with "I need Gmail to accept 20,000 receipts" is how projects stall.
# Rough monthly cost sketch (replace with current list prices)
# 20_000 transactional messages
python3 - << 'PY'
ses = 20000 * 0.0001
postmark = 20 # typical starter bucket; check current plan
mailgun = 20000 * 0.0008
print("ses_usd", round(ses, 2))
print("postmark_plan_usd", postmark)
print("mailgun_usd", round(mailgun, 2))
print("vps_time_hours", 4, "is the real direct-send cost")
PYThe VPS invoice is not the outbound cost. Four hours of fighting a 550 5.7.1 after launch is. DNS should match the path you picked, not both paths at once.
; transactional via ESP only (no VPS ip4)
example.com. IN TXT "v=spf1 include:spf.mailgun.org -all"
s1._domainkey.example.com. IN CNAME s1.domainkey.mailgun.org.
; personal domain sending direct from one VPS
example.com. IN TXT "v=spf1 ip4:203.0.113.40 -all"
s1._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIB..."A default you can defend
- Under a few hundred transactional messages a day: Postmark or Mailgun SMTP, or SES if you already live on AWS APIs.
- Thousands a day: SES or Mailgun with a dedicated IP only after the shared pool is clean and warmup is scheduled.
- Newsletters: a broadcast stream or a specialist, never the transactional IP.
- Direct from the VPS: operational mail to yourself, or a carefully authenticated personal domain. Not customer resets.
Netbay will rent you the VPS. It will not warm an IP or negotiate with Outlook. Plan the ESP in the architecture, not as a panic buy on launch day. Shared IP pools at an ESP are still warmer than a brand-new VPS address, even when that VPS is otherwise well configured.
Takeaway
Choose by volume and by who is blamed when mail is junked. Most products should relay or API-send; self-host outbound only with eyes open. You can spin up an Ubuntu 24.04 instance on Netbay in under 60 seconds and point Postfix at whichever ESP you picked — netbayhosts.in.
Keep reading
Follow along on a real VPS
Deploy Linux in under 60 seconds
These guides are written against Ubuntu, Debian, and RHEL-family images — the same ones on NetBay.
Deploy an instance