Skip to content
Docs

Statuses and events

An email goes queued → sending → sent → delivered, or ends bounced, complained, failed, suppressed or canceled.

Statuses

statusMeans
queuedAccepted and waiting for our sender — now, or at its scheduled_at. It can still be rescheduled or canceled.
sendingOur sender has taken it and is handing it to Amazon SES.
sentAmazon SES accepted it for delivery.
deliveredThe recipient’s mail server accepted it.
bouncedThe recipient’s mail server turned it away. The email page says why, in plain words.
complainedDelivered, then the recipient reported it as spam.
failedIt was not sent, or Amazon SES refused it: status_reason says why (for example key_revoked, domain_not_verified, reject).
suppressedNot sent, because a recipient is on this account’s suppression list. It counts nothing against your caps.
canceledCanceled before it was sent, through the API.

Events

Amazon SES reports what happens after it accepts an email. Each report is an event, shown on the email’s page in the dashboard, and the latest is last_event in GET /emails/{id}.

last_eventMeans
sendAmazon SES accepted it for delivery.
deliveryThe recipient’s mail server accepted it.
bounceThe recipient’s mail server turned it away.
complaintThe recipient reported it as spam to their mail provider.
rejectAmazon SES refused to send it.
delivery_delayThe recipient’s server has not accepted it yet; Amazon SES keeps trying.
rendering_failureAmazon SES could not build the message.

When events arrive out of order

  • A status never goes back: a late delivery report does not undo a bounce.
  • bounced and failed beat complained, which beats delivered, which beats sent.
  • A complaint is recorded, and moves a delivered email to complained, but it is not a bounce.
  • A delay (delivery_delay) is an event, not a status: the email keeps its status while Amazon SES keeps trying.
  • The same event reported twice is kept once.

Read an email’s status with GET /emails/{id}, or many with GET /emails.