# Email bounces

> How MailBlastr records hard and soft bounces, and auto-suppresses recipients on hard bounces.

A bounce means the receiving mail system rejected your message. MailBlastr distinguishes two kinds, and treats them differently:

| Type | What it means | MailBlastr behavior |
| --- | --- | --- |
| **Hard (permanent)** | The address is invalid or permanently undeliverable. | Email status → `bounced`; the recipient is **auto-suppressed** for your account. |
| **Soft (transient)** | A temporary problem — full mailbox, throttling, grey-listing. | Recorded as `delivery_delayed` or `bounced` depending on the signal; the recipient is **not** suppressed. |

## Bounce types and subtypes

When a message bounces, MailBlastr reports a **type** and a more specific **subtype** describing why delivery failed. These are recorded on the email so you can tell a permanent failure apart from a retryable one. There are three types:

| Type | Subtype | What it means |
| --- | --- | --- |
| `Permanent` (hard) | `General` | The recipient’s provider sent a hard bounce — the address is undeliverable and will not accept the message. |
| `Permanent` (hard) | `NoEmail` | The recipient address could not be extracted from the bounce message. |
| `Transient` (soft) | `General` | A general temporary failure. A later send to the same recipient may succeed once the issue clears. |
| `Transient` (soft) | `MailboxFull` | The recipient’s inbox was full. Retrying later may succeed. |
| `Transient` (soft) | `MessageTooLarge` | The message exceeded the recipient provider’s size limit. Reduce the size and retry. |
| `Transient` (soft) | `ContentRejected` | The provider rejected the message content. Changing the content may let it through. |
| `Transient` (soft) | `AttachmentRejected` | An attachment was unacceptable (file type or size). Remove or change it and retry. |
| `Undetermined` | `Undetermined` | The server bounced but the message lacked enough detail to classify the reason. |

> **Note:** Only `Permanent` bounces auto-suppress the recipient. `Transient` and `Undetermined` bounces do not — they are expected to be retryable. Note that some autoresponders signal as a `Transient` bounce rather than a real failure.

## How bounces are recorded

When a bounce is reported, MailBlastr matches it to the original email, advances its `status` to `bounced` (or `delivery_delayed` for a transient delay), and appends a `bounced` (or `delivery_delayed`) entry to the email's [event log](https://www.mailblastr.com/docs/emails/managing). The same event is forwarded to your [webhooks](https://www.mailblastr.com/docs/webhooks/overview) as `email.bounced` (or `email.delivery_delayed`). Redelivered notifications are de-duplicated, so a bounce is never recorded or forwarded twice.

## Auto-suppression on hard bounces

A **permanent** bounce automatically adds the recipient to your account-wide [suppression list](https://www.mailblastr.com/docs/emails/suppressions). On every later send, MailBlastr skips that recipient — protecting your sender reputation by never re-mailing a known-bad address. Soft bounces do **not** suppress the recipient, since the problem is expected to be temporary.

> **Warning:** Repeatedly mailing addresses that hard-bounce damages your domain's deliverability with mailbox providers. Auto-suppression exists to prevent exactly this — do not work around it by stripping suppressed recipients from your own lists and re-adding them.
