AWS SES vs MailAnvil: Why Raw Email Infrastructure Costs More Than Its Price Tag
Ask a developer why they don't just use AWS SES directly and the answer is usually the price. $0.10 per 1,000 emails. It's hard to argue with. So why does MailAnvil exist — and why is it, under the hood, built on SES?
Because SES is not a product. It's infrastructure. The list price is the smallest line item. The real cost is everything you have to build around it before it will send one production email reliably. MailAnvil pays that cost once so you don't pay it at all.
What the price tag doesn't tell you
SES charges $0.10 per 1,000 emails plus $0.12 per GB of attachments. That number is real and it's low. But before you can send a single email at that price, you owe Amazon several things it doesn't put on the invoice.
Production access: the first wall
A fresh SES account runs in sandbox. Sandbox means a hard 200 emails/day cap, and you can only send to verified addresses — your own test inboxes. To send to real customers you must open a support case, explain your use case, prove your domains, and wait for a human reviewer to approve production access. That takes days to weeks. We know — MailAnvil's founder went through it (AWS case 178343652700360, approved after a detailed use-case write-up and a follow-up).
MailAnvil already holds that production access and passes it to you. Verify your domain, and you're sending at production volume today — no case, no reviewer, no waiting.
Suppression: the cost of staying alive
SES does not maintain a suppression list for you. If you send to addresses that bounce or mark you as spam, your account reputation drops and — pushed far enough — Amazon throttles or suspends you. Every serious SES user ends up building the same machine: capture bounce and complaint notifications, maintain an opt-out list, honor them at send time.
MailAnvil does this out of the box. Bounce and complaint handling, suppression checks at both enqueue and send, and a hard rule that no email leaves without a DKIM-verified domain. It's the deliverability discipline you'd otherwise have to write yourself — and the part most teams skip until it bites them.
DNS: DKIM, SPF, and DMARC by hand
SES gives you DNS records and a pat on the back. You add DKIM CNAMEs, SPF, and a DMARC policy to your DNS provider manually, and you debug the propagation yourself. If your domain is on Cloudflare DNS, MailAnvil sets up auto-DKIM with one click — the records, the verification, the DMARC alignment, done.
Webhooks: build the plumbing
SES has no webhooks. Delivery, bounce, and complaint events go to SNS, which fans out to SQS or Lambda, which you then wire into your app's retry and status logic. That's a real integration project — queues, consumers, dead-letter handling. MailAnvil ships native webhooks that POST delivery, open, click, bounce, and complaint events straight to your endpoint.
The honest side-by-side
| AWS SES (raw) | MailAnvil | |
|---|---|---|
| List price | $0.10 / 1,000 emails + $0.12 / GB | IDR plans, flat per tier |
| Production access | Manual AWS case, days to weeks | Instant (already approved) |
| Free tier | 3,000/mo first year (non-EC2), sandbox 200/day | 500/mo production, no daily cap |
| 100,000 emails | $10 list + your infra cost | Rp 599rb/mo (~$40) |
| Suppression list | Build it yourself | Built in |
| DKIM / SPF / DMARC | Manual DNS | Auto-DKIM (CF DNS one-click) |
| Webhooks | SNS → SQS/Lambda plumbing | Native webhooks |
| Payment | USD, AWS billing, credit card | IDR, QRIS / GoPay / bank transfer |
| Latency from Jakarta | us-east-1, ~180–200ms | Cloudflare edge, ~10ms |
| AI agents | No MCP | MCP-native, first-party |
| Docs / support | English, AWS console | Bahasa + English, Telegram |
The engineering-hours math
The pricing argument for raw SES collapses when you count the build. Suppression handling, webhook plumbing, retry logic, a status dashboard, DNS debugging — a competent team spends a week or more on this before it's production-trustworthy. At Indonesian engineering rates, that week costs more than a year of MailAnvil's Growth plan. And it's not a one-time cost: every bounce classification change, every deliverability incident, is time you own.
That's the actual comparison. Not $0.10 versus a rupiah price — it's a week of your engineers' time versus a working send endpoint this afternoon.
Where raw SES genuinely wins
Be fair: there are teams where SES makes sense. If you're a larger company that already runs SNS/SQS/Lambda, already bills USD, has a dedicated platform team that wants to own deliverability, and needs to send millions a month at absolute minimum marginal cost — then raw SES is a reasonable choice. You have the staff to turn infrastructure into a product.
Where MailAnvil wins
If you're an Indonesian startup or indie developer — the person who should be building product, not plumbing — MailAnvil is the right layer. You get SES's deliverability with the production access, suppression, DNS, and webhooks already handled, billed in rupiah and paid with QRIS or GoPay, served from the Cloudflare edge, with docs in Bahasa Indonesia. And if your roadmap includes an AI agent that sends email, MailAnvil is MCP-native: a first-party MCP server your agent can discover and use without you wiring anything up.
Raw SES is a good engine. MailAnvil is that engine with a steering wheel, brakes, and a dashboard — and a price that actually fits how Indonesian teams pay for software.