Hard Bounces Suppressed Automatically

MultiMail records every hard bounce on a per-tenant suppression list and refuses the next send to that address — so one bad address can't keep costing you reputation.


Why this matters

High-volume AI agents sending to stale or invalid addresses accumulate bounces rapidly. Repeated hard bounces trigger ISP throttling and can damage your sending domain's reputation within days. The damage is not isolated — in a shared infrastructure environment, one agent's bounce spike degrades deliverability for every tenant on the platform. Traditional approaches let an agent re-send to a known-bad address again and again. By then the reputation hit has already landed, and unwinding a blacklisting takes weeks of remediation that no agent can automate away.


How MultiMail solves this

When a message hard-bounces, MultiMail records the recipient address on your tenant's suppression list automatically and fires an email.bounced webhook with the SMTP diagnostic code. The next send to a suppressed address is refused at the API layer — the send endpoint returns HTTP 400 before the message enters the queue, so a known-bad address never burns more reputation. Your agent lists the current suppression set with GET /v1/suppression and prunes it before building a send list, and can remove a non-permanent suppression with DELETE /v1/suppression/{address} when a contact confirms a working mailbox.

1

Suppression Check on Every Send

Before queuing a message, MultiMail checks the recipient against your tenant's suppression list. If the address was previously hard-bounced or unsubscribed, the send endpoint returns HTTP 400 before the message is queued — the check is transparent to your agent for any address that is not suppressed.

2

Refused Before the Wire

A suppressed recipient never reaches the mail server. POST /v1/mailboxes/{mailbox_id}/send returns a 400 with an error explaining the address is on the suppression list (bounced or unsubscribed), so a known-bad address contributes zero additional bounce volume to your sending reputation.

3

Automatic Suppression on Hard Bounce

When a hard bounce occurs (SMTP 5xx, invalid mailbox, domain not found), MultiMail fires an email.bounced webhook to your registered endpoint and adds the address to your tenant's suppression list. Subsequent sends to that address return a 400 before consuming send quota.

4

Permanent vs. Removable Suppressions

Hard-bounce suppressions are permanent — DELETE /v1/suppression/{address} returns 403 for them, because the failure signal stays valid until the contact proves a working mailbox. Unsubscribe and soft suppressions can be removed once the contact confirms a deliverable address.

5

Pre-Send List Validation

Your agent calls GET /v1/suppression to retrieve the current per-tenant suppression set and prunes those addresses while preparing a send list — rather than discovering suppressions one 400 at a time mid-campaign.


Try it with your agent

Pick your platform, copy the prompt, and paste it to your AI agent — it sets up MultiMail and builds the whole flow. Nothing to fill in.

1. Read https://multimail.dev/llms.txt, connect the MCP server, create a free inbox, and set up a verified sender. 2. In HubSpot, use a contact-based Workflow that enrolls contacts when the Email hard bounce reason property becomes known, and also create an active list for contacts whose Email hard bounce reason is known or whose email address is invalid. 3. Before any outbound AI campaign, pull the HubSpot recipient list, remove contacts on that bounce list, and update bounced contacts with a clear suppression note so future agents do not re-enroll them. 4. For addresses a human marks as corrected in HubSpot, verify the replacement email field is populated, remove the old address from the campaign audience, and only send to the corrected address. 5. Run this in MultiMail autonomous oversight mode; ask me only for HubSpot access, the sending brand, and final approval to go live.

What you get

Suppression Refusal Eliminates Repeat-Bounce Impact

A suppression check runs before the send endpoint queues a message. A previously hard-bounced or unsubscribed address is refused with a 400 and never reaches the mail server, contributing zero additional bounce volume to your sending domain's reputation.

Automatic Suppression on Hard Bounce

When a recipient hard-bounces, MultiMail records the address on your tenant's suppression list automatically and fires an email.bounced webhook. You do not maintain a suppression list by hand — the platform builds it from real delivery outcomes.

No Send Quota Wasted on Known-Bad Addresses

Subsequent sends to a suppressed address return HTTP 400 before the request enters the queue, consuming no send quota. Your agent prunes the contact instead of burning attempts on an address that will never deliver.

Clear Reasons for Agent Decision Logic

GET /v1/suppression returns each entry's reason (e.g. hard_bounce, unsubscribe) alongside the address, mailbox, and timestamp. The send-time 400 names the suppression list explicitly. Your agent routes, logs, or escalates on a stable signal.

Permanent vs. Removable Suppressions

Hard-bounce suppressions are permanent — they protect you from re-sending to a dead mailbox until the contact proves a working address. Unsubscribe and soft suppressions can be lifted via DELETE /v1/suppression/{address} once the contact confirms a deliverable mailbox.


Recommended oversight mode

Recommended
autonomous
Bounce management is a protective, reactive operation. The decisions are deterministic: hard bounces are suppressed, and the next send to a suppressed address is refused with a 400. There is no ambiguity that warrants human review, and adding an approval step introduces latency into a process that needs to complete before the next send attempt. Acting on a suppression is always less risky than waiting for human approval. Use autonomous mode so bounce suppression stays ahead of send volume at scale.

Common questions

What is the difference between a hard bounce and a soft bounce?
A hard bounce is a permanent delivery failure — the mailbox does not exist (SMTP 550), the domain has no MX records, or the receiving server explicitly rejects the address. MultiMail suppresses hard-bounced addresses automatically. A soft bounce is a temporary failure — mailbox full, server overloaded, or a transient connection timeout. MultiMail retries soft bounces on an exponential backoff schedule before treating them as permanent.
Does the suppression check add latency to send calls?
The suppression lookup is a per-tenant list check on the send path and is negligible in the overall request time. For high-throughput scenarios, fetch your suppression set once via GET /v1/suppression and prune your send list before the campaign loop, rather than discovering each suppressed address as a 400 inline.
Can I see why an address was suppressed?
Yes. Each entry returned by GET /v1/suppression carries a reason field — for example hard_bounce or unsubscribe — alongside the email_address, the mailbox_id it was suppressed under, and the created_at timestamp. These are suitable for logging and agent decision logic, and the send-time 400 names the suppression list directly.
How does MultiMail suppress addresses without my agent explicitly calling a suppression API?
Suppression is managed at the platform level. When a bounce event arrives from the receiving mail server, MultiMail records the suppression against your tenant automatically and fires an email.bounced webhook. Future sends to that address return HTTP 400 before the request reaches the queue — no explicit suppression call is required from your agent.
Can I remove an address from the suppression list?
Non-permanent suppressions (e.g. unsubscribe) can be removed via DELETE /v1/suppression/{address} when a contact updates their email or confirms their mailbox is active. Hard-bounce suppressions are permanent — DELETE returns 403 for them — because the failure signal remains valid until the contact provides a working address. Removal is always a manual operation; MultiMail does not auto-unsuppress.
What happens if I send to a suppressed address anyway?
The send endpoint returns HTTP 400 with an error noting the recipient is on the suppression list (bounced or unsubscribed). The message is never queued and consumes no send quota, so the address contributes no additional bounce volume. Your agent should treat the 400 as a signal to prune the contact rather than retry.
Is my suppression list shared with other tenants?
No. The suppression list is strictly tenant-scoped — GET /v1/suppression returns only your tenant's entries, and a hard bounce recorded for your account does not appear on any other tenant's list. Your contact list and suppression list are private to your account.

Explore more use cases

The only agent email with a verifiable sender

Email infrastructure built for AI agents. Verifiable identity, graduated oversight, and a hosted MCP server. Formally verified in Lean 4.