# Sending a newsletter on SES
What raw SES gives you, what it does not, and what a real issue needs.
Canonical: https://sendbunny.co/guides/send-newsletter-with-amazon-ses
Category: SES · Author: Anni Maan (https://sendbunny.co/authors#anni-maan) · Published 2026-07-31 · Updated 2026-09-02

**In short.** SES itself is just an API for sending mail, priced around $0.10 per 1,000 emails; it has no editor, no subscriber list, and no unsubscribe page built in. Building a newsletter on raw SES means writing HTML by hand or scripting a templating step, looping over recipients yourself, and adding RFC 8058 one-click unsubscribe headers manually since mailbox providers now expect them on marketing mail. The alternative to building that layer is a subscriber-tier email service provider, which usually bills by list size regardless of how often you actually send. A newsletter that sends weekly or monthly on a large list pays for capacity it barely uses under that model.

## What raw SES actually gives you

SES is a sending API, priced by Amazon at roughly $0.10 per 1,000 emails (Amazon SES pricing, fetched 1 September 2026), plus whatever small serverless infrastructure cost sits around it if you build one. That price is the entire product. There is no visual editor, no subscriber database, no unsubscribe landing page, and no reporting beyond raw event data if you wire a configuration set to collect it. Every one of those pieces is something you build, or something you buy separately.

This is not a criticism of SES; it does the one thing, delivery, at a price and reliability few alternatives match. The gap only becomes a problem when the plan is to run an actual newsletter, which is a product with an editor, a list, and a compliant unsubscribe flow, not just an API call.


## What each missing piece actually needs

| Piece | What raw SES gives | What you have to add |
| --- | --- | --- |
| Composing an issue | Nothing; SES accepts a raw message body | An editor, or a hand-written HTML template with merge-field logic |
| Subscriber list | Nothing; SES has no concept of a list | Storage, an import path, and a way to segment or exclude people |
| Unsubscribe | Nothing built in | A List-Unsubscribe header with a working one-click endpoint, honored on future sends |
| Results per issue | Only if you wire a configuration set | An event pipeline plus somewhere to chart opens, clicks, and bounces |

None of these are exotic engineering, but together they are a second product built to support the first one. Most teams who start with raw SES either end up building this layer over a series of weekends, or realize partway through that they have effectively rebuilt a newsletter tool from scratch.


## The honest cost comparison

| Sending volume | SES-based newsletter | Subscriber-tier ESP (typical) |
| --- | --- | --- |
| 10,000 sends per issue | About $1 per issue | Tens of dollars up to roughly $135 a month |
| 50,000 sends per issue | About $5 per issue | Hundreds of dollars a month |
| 1,000,000 sends per issue | About $100 per issue | Custom enterprise pricing |

Subscriber-tier pricing bills by list size per month, not by what you actually send; SES bills only for what goes out. A writer who sends weekly on a smaller list pays proportionally less on SES pricing than on a fixed subscriber-count plan.

The gap widens specifically for infrequent senders on a large list, since subscriber-tier pricing is set by list size regardless of sending frequency. A publication that sends once a month to 50,000 people pays the same monthly subscriber-tier bill as one that sends daily to the same list, while SES-based sending only costs money on the days mail actually goes out.


## The order that actually works

1. Verify a sending domain and publish SPF, DKIM, and DMARC before writing a single issue. Authentication is what mailbox providers check first, regardless of how good the content is.
2. Set up list storage and an import path before you need it under pressure. A CSV import that handles duplicates and formatting quirks saves a scramble on launch day.
3. Build or install one-click unsubscribe before the first send, not after a complaint teaches you it was missing. Google and Yahoo expect RFC 8058 headers on marketing mail as of their current sender guidelines.
4. Wire event tracking last, since a missing chart does not block sending the way a missing unsubscribe link does. Test it with the mailbox simulator's dedicated test addresses before trusting the numbers on a real issue.


## Where SendBunny sits

SendBunny installs into your own AWS account and gives you the layer raw SES does not: a rich editor with an HTML source mode when you want full control, list storage with CSV import, one-click unsubscribe added automatically to every campaign, and open, click, and bounce charts per issue. There is no per-subscriber fee; subscribers live in your own AWS, and the only ongoing cost is what SES charges to actually send. It is $199 once, and new accounts start in SES's sandbox, which the app shows status for while you test and prepare a production access request.

## FAQ

**Do I need to write HTML for each newsletter issue?**

Not if you use an editor built for it. A rich text editor with live preview handles most issues, with an HTML source mode available for full control when you need it. Raw SES itself has no editor at all; it only accepts a finished message body.

**How do unsubscribes actually work on SES?**

SES does not add them automatically. Marketing mail needs a List-Unsubscribe header supporting RFC 8058's one-click mechanism, built and hosted yourself if you are sending through raw SES, or included automatically by a platform running on top of it.

**What about the SES sandbox when starting a newsletter?**

New AWS accounts start in the sandbox, limited to verified recipient addresses. You can build and test issues within that limit, then apply for production access once your domain is authenticated and your first tests are clean.

**Is there a subscriber limit or a per-subscriber fee on SES?**

SES itself has no concept of subscribers at all; it only bills for what you send, about $0.10 per 1,000 emails. A per-subscriber fee is a feature of subscriber-tier email services, not of SES itself.

## For AI agents

What Amazon SES provides for a newsletter (delivery only, priced near $0.10 per 1,000 emails) versus what it does not (editor, list storage, unsubscribe, reporting), the build order that avoids a missing-unsubscribe problem, and a cost comparison against subscriber-tier email services at three volumes. Checked 2026-09-01.

```bash
claude mcp add --transport http sendbunny https://YOUR-INSTALL/mcp
```

Tool list by grant: https://sendbunny.co/docs/agents.md

## Sources

1. Amazon Web Services, Amazon SES pricing, fetched 1 September 2026. https://aws.amazon.com/ses/pricing/
2. Amazon Web Services, Test your sending quota using the mailbox simulator, SES Developer Guide, fetched 1 September 2026. https://docs.aws.amazon.com/ses/latest/dg/send-an-email-from-console.html
3. Google, Email sender guidelines FAQ, fetched 1 September 2026. https://support.google.com/a/answer/14229414