Shared SES
Shared SES
SendFleet's managed sending path. Verify your account email, pick a Managed plan, add a sending domain, and complete its DNS verification. Email logs, delivery webhooks, and bounce and complaint handling are all included.
How it works
On this path your email is delivered by SendFleet's own sending infrastructure. We register your domain, process delivery and bounce notifications, suppress addresses that have proven undeliverable, and monitor for abuse. Because we handle delivery, your dashboard shows full email logs and your endpoints receive delivery webhooks.
Suppression is scoped per account, so one sender's bad addresses never block another sender's legitimate mail to the same person. Overall reputation on the shared path is still collective, which is why the deliverability monitoring below is enforced.
What's included
| Feature | Managed Starter | Managed Growth | Managed Pro |
|---|---|---|---|
| Price | $5 / mo | $15 / mo | $59 / mo |
| Monthly emails | 5,000 | 25,000 | 100,000 |
| Email log history | 14 days | 14 days | 14 days |
| Bounce & complaint handling | Automatic | Automatic | Automatic |
| Delivery webhooks | Yes | Yes | Yes |
| Suppression handling | Managed | Managed | Managed |
| Deliverability monitoring | Yes | Yes | Yes |
| Support | Priority email | Priority email | Priority email |
Setup steps
Verify your account email
Check your inbox for the verification link sent at sign-up. Sending stays blocked on every plan until this is done.Subscribe to a Managed plan
Go to Dashboard → Billing and choose Managed Starter ($5/mo), Managed Growth ($15/mo), or Managed Pro ($59/mo). Access is granted as soon as the subscription is active.Add a Shared SES domain
Go to Dashboard → Domains → Add Shared SES domain and enter your root domain, for exampleacme.com. We register the identity and show you the DNS records to publish.Add the DNS records
Publish the records shown on the domain detail page. At minimum you need both ownership TXT records and all three DKIM CNAMEs before you can send. Full detail in the DNS Records guide.TXT _amazonses.acme.com <verification_token> TXT _sendfleet.acme.com sendfleet-verification=<value> CNAME <token1>._domainkey.acme.com <token1>.dkim.amazonses.com CNAME <token2>._domainkey.acme.com <token2>.dkim.amazonses.com CNAME <token3>._domainkey.acme.com <token3>.dkim.amazonses.com
Verify and send
Once DNS has propagated, usually minutes, up to 48 hours at worst, choose Verify ownership, then Verify DKIM. Both must pass before sending is enabled. Then generate an API key and make your first request.
Email logs
Every send on this path is logged in your dashboard with sender, recipient, subject, current status, and event timestamps. Logs are retained for 14 days and then deleted.
A message moves through pending on acceptance, then to sent once the delivery platform accepts it, and finally to a terminal status: delivered, bounced, complained, rejected, suppressed, or failed.
Bounce and complaint handling
Delivery events are processed automatically and reflected in your logs, your counters, and your webhooks.
| Event | What happens |
|---|---|
| Delivery confirmed | The log status becomes delivered and an email.delivered webhook fires. |
| Hard bounce (permanent) | The log status becomes bounced, an email.bounced webhook fires, and your bounce counter increases. The address is added to suppression, so later sends to it resolve as suppressed. |
| Soft bounce (transient) | Recorded as a bounce event. The address is not suppressed, soft bounces are temporary conditions such as a full mailbox, and SES may retry on its own. |
| Complaint (marked as spam) | The log status becomes complained, an email.complained webhook fires, and your complaint counter increases. The address is suppressed. |
| Send to a suppressed address | The request is accepted with a 200, then resolves to suppressed with an email.suppressed webhook. No delivery is attempted, and it does not count towards your bounce rate. |
| Rejected | The message was declined before any delivery attempt. Status rejected, with an email.rejected webhook carrying the reason. |
| Delayed | Delivery is taking longer than usual but has not failed. An email.delayed webhook fires; the status is left unchanged because the message may still arrive. |
Deliverability warnings on send
Successful responses on this path may carry a warnings array. These never block delivery. Each deliverability warning below describes a DNS gap that measurably lowers inbox placement.
| Warning | Fix |
|---|---|
| MAIL FROM not verified | Bounce handling falls back to a shared default and your Return-Path will not align with your domain. Add the MX and SPF records for send.yourdomain.com, see DNS Records. |
| DMARC record not found | Add v=DMARC1; p=none; as a TXT record on _dmarc.yourdomain.com, then tighten the policy once you have reviewed the reports. |
Free plan: the Shared smoke test
Free BYOC can also send through Shared SES, to your own verified account address and nowhere else. It exists so you can check a request end to end through SendFleet's infrastructure before you set up AWS or pick a plan. It is a smoke test, not a sending path.
| Rule | What it means |
|---|---|
| One recipient | The email address you signed up with, exactly. Any other address, or any cc or bcc, is refused with 403 unauthorized. More than one address in to returns 403 recipient_limit_exceeded. Nothing is queued. |
| No redirection | reply_to may only be empty, your own address, or the sender address. from_name may not contain an address, line breaks, or the characters < > @ , ; ", and subject may not contain line breaks. Anything else is refused with 403 unauthorized. |
| One Shared domain | Verified the same way as on a Managed plan, using the setup steps above. |
| Same allowance | Smoke tests count towards Free BYOC's 3,000 emails a month, together with your BYOC sends. One counter, whichever path the send takes. |
| Email log | Smoke-test sends appear in your email log for 14 days, content included, because this is Shared SES. |
| No webhooks | No webhook fires for a smoke test, even if your account has endpoints left over from a previous Managed plan. |
| BYOC sending | Unaffected. Your BYOC sending on the free plan still sends to anyone. |
| Spam reports | Zero tolerance. A smoke test only ever reaches your own inbox, so marking one as spam is reporting your own mail: the first spam complaint on a smoke test permanently suspends the account, with no warning and no temporary pause first. Delete a smoke test you no longer want; do not report it. |
A successful smoke test returns an ordinary 200 with an entry in warnings saying what it was:
{
"success": true,
"message": "Email queued for delivery.",
"message_id": "…",
"mode": "shared",
"warnings": [
"Free plan Shared smoke test: delivered only to your own verified address, no webhooks fired. To send to anyone else, use a BYOC domain or a Managed plan."
]
}Differences from BYOC
| Item | Shared SES | BYOC |
|---|---|---|
| AWS account needed | No | Yes, your own |
| Email content stored | Yes, 14 days | Bodies never; recipients and subjects only with email logs on |
| Sender reputation | Shared pool | Yours alone |
| Account setup | Verify email, activate a Managed plan | Verify email, connect your AWS account in Dashboard → AWS |
| Email logs in dashboard | Yes | Optional, metadata only (on by default) |
| Delivery webhooks | Yes | BYOC plan, from your own SES events |
| Bounce & complaint handling | Managed for you | Tracked in your account, with protection you choose |
| Monthly cap | 5,000 / 25,000 / 100,000 by plan | 3,000 on Free BYOC; on BYOC, the monthly cap you set (up to 1,000,000), and your own SES quota on top |
Frequently asked questions
What the managed path needs from you, and the deliverability trade-off of a shared sender pool.