Bounces and suppression

What happens when delivery fails permanently, and how the relay protects pool reputation.

Bounce DSN

When a message exceeds retry attempts or the recipient returns a 5xx, the relay marks it bounced and sends an RFC 3464 Delivery Status Notification (DSN) to the original sender.

The DSN is a multipart MIME message with three parts:

  1. text/plain: human-readable explanation of the failure.
  2. message/delivery-status: machine-readable fields including Original-Recipient, Final-Recipient, Action (failed), Status (e.g. 5.1.1), and Diagnostic-Code with the recipient MX's response.
  3. message/rfc822-headers: the headers of the original message, including Message-ID so you can correlate the bounce to your send.

Parse the message/delivery-status part programmatically. The Diagnostic-Code field carries the verbatim 5xx response from the recipient — the most useful field for debugging.

Where DSNs go

DSNs are addressed to the original envelope sender. For relay-submitted mail, that's a VERP-encoded address at atmos.email, which the relay receives at its inbound listener and forwards to your domain's forward-to mailbox if one is set. If forward-to is empty, the DSN is logged but not delivered. See Reply forwarding to set up forward-to.

The suppression list

The relay maintains a per-DID suppression list. When a recipient one-click-unsubscribes via the List-Unsubscribe header, their address is added to your suppression list. Future sends to that address from your DID return 550 5.7.1 suppressed recipient.

Hard bounces

The relay does not maintain a global hard-bounce suppression list. If a recipient address returns 5xx permanently, you'll see that in your bounce stream and should remove the address from your sending list yourself.

The safety net is the bounce-rate auto-suspension below. It catches members who keep sending to bad addresses by suspending the whole account before the pool's reputation suffers.

Bounce-rate auto-suspension

The relay tracks each member's bounce rate over a 24-hour window. If your bounce rate exceeds 10% with at least 20 sends in the window, your account is auto-suspended.

This protects the shared IP's reputation. A high bounce rate signals one of:

To reactivate after auto-suspension, sign into /account and contact the operator. Address the underlying cause first; reactivation without fixing the bounce source will trigger another suspension.

Complaints (ARF feedback)

When a recipient marks one of your messages as spam, their mail provider may send the relay an Abuse Reporting Format (ARF) report. The relay records each complaint as a feedback event attributed to your DID via the X-Atmos-Member-DID header it added at submission.

Complaints feed the trust-and-safety rules engine and may lead to suspension if the rate is high. Unlike bounces, complaint reports don't directly block future sends to the complaining recipient; treat the bounce stream and your suppression list as separate feedback channels.

Back to docs