SES Bridge for Ghost · Guide · PikaPods · checked October 2, 2026
Ghost on PikaPods: newsletters through Amazon SES instead of Mailgun
The short answer
PikaPods' own Ghost notes say that for bulk emails (newsletters) "currently only Mailgun is supported". That's a Ghost limitation, not a PikaPods one: Ghost's newsletter sending only speaks Mailgun's API. To send through Amazon SES instead, Ghost needs to talk to a Mailgun-compatible proxy that hands the mail to SES. On PikaPods you can point Ghost at such a proxy with environment variables. The proxy itself has to run somewhere else: on a server you manage, or as a hosted service.
How Ghost decides where newsletters go
Ghost's bulk email client (in the Ghost source, mailgun-client.js) reads three values: an API key, a sending domain and a base URL. It takes them from Ghost's bulkEmail.mailgun configuration if that exists, and otherwise from the Mailgun fields in Settings → Newsletter in Ghost Admin. The base URL is normally Mailgun's API address; a proxy replaces it with its own.
Ghost configuration can be set with environment variables, using double underscores for nesting. PikaPods' Ghost notes show this for the mail settings (for example mail__transport) under the pod's Env Vars settings. The bulk email equivalents are:
| Env var | What goes in it |
|---|---|
bulkEmail__mailgun__baseUrl | The proxy's Mailgun-style API URL (given to you by the proxy) |
bulkEmail__mailgun__apiKey | The key the proxy issues to your Ghost site (not your AWS keys) |
bulkEmail__mailgun__domain | Your sending domain, verified in SES |
Set all three: when bulkEmail.mailgun exists in config, Ghost uses it instead of the Admin settings. Restart the pod after changing env vars, then send a test newsletter to yourself before a real issue.
Transactional email is separate (and already works with SES)
Sign-in links, welcome emails and staff invites use Ghost's ordinary SMTP settings (mail__… env vars). PikaPods' notes show Mailgun SMTP as an example, but any SMTP service works, including SES SMTP credentials. Only newsletters need the proxy.
Your options on PikaPods
| Option | Cost | What you run |
|---|---|---|
| Stay on Mailgun (PikaPods' documented path) | Mailgun plan; the free plan allows 100 emails a day | Nothing extra |
| Open-source Mailgun-to-SES proxy on your own server | Free software + a small server + SES fees | A VPS or container host with TLS, which you keep updated and monitored |
| Hosted proxy (Mailpunch, SES Bridge for Ghost) | Monthly fee + SES fees | Nothing extra; you set three env vars |
If you chose PikaPods so you wouldn't have to run servers, the second option brings that work back. That's the gap a hosted proxy fills. If you're happy to run a small VPS, the open-source proxies listed in our Ghost + SES guide cost nothing in software.
What you need on the AWS side either way
- An AWS account with your sending domain verified in SES (DKIM records in your DNS).
- SES production access. New accounts start in the sandbox, which only sends to verified addresses.
- A configuration set publishing delivery, bounce, complaint (and optionally open) events, so Ghost's newsletter analytics and member email status keep updating.
Costs: see the Mailgun vs SES cost table in our guide (for example about 4,000 emails a month is $15/month on Mailgun Basic versus roughly $0.40 to $0.64 in SES fees, before any proxy cost).
About SES Bridge for Ghost (ours)
Not built yet. It's planned as a hosted Mailgun-compatible endpoint for one self-hosted Ghost site, sending through your own Amazon SES account, with sends, events and suppressions. It should suit PikaPods users because there's nothing to install: you set the three env vars above. It's a pre-order: $5 one-time covers the first 30 days from setup access, then a planned $9/month if you choose to continue. It ships by December 1, 2026 or you get a full refund, and the project is cancelled with full refunds if fewer than 3 people pre-order by October 30, 2026. It does not work with Ghost(Pro).