Home » Email Deliverability » Bounce Handling

How to Handle Email Bounces and Complaints Automatically

Automatic bounce and complaint handling means your email platform processes delivery failure notifications and spam complaints in real time, immediately suppressing problematic addresses from future sends. This requires setting up webhooks from your SMTP provider that notify your platform whenever an email bounces or a recipient marks it as spam. Without automation, these events accumulate silently and damage your sender reputation.

Why Automatic Handling Is Essential

Every time you send to a bounced address, ISPs record it as evidence that you are not managing your list. Every time you email someone who already reported you as spam, the ISP records another complaint. These events are cumulative and directly damage your sender reputation. Manual bounce processing after each campaign is too slow because the damage happens during the send, not after.

With automatic handling, a hard bounce at 10:05 AM means that address is suppressed by 10:06 AM. If the same campaign is still sending, the remaining batch will not include that address. A spam complaint triggers the same immediate suppression. This is the speed needed to protect your reputation.

How Webhook-Based Bounce Handling Works

Step 1: Configure webhook URLs in your SMTP provider.
Every major email provider supports event webhooks. In your provider's dashboard, find the webhook or event notification settings. Set the webhook URL to point to your email platform's bounce handler endpoint. Select the event types you want to receive: bounces (hard and soft), spam complaints, and unsubscribes at minimum.
Step 2: Your platform receives events in real time.
When an email bounces or a complaint comes in, the SMTP provider sends a POST request to your webhook URL containing the event details: the email address, the event type (bounce, complaint, unsubscribe), the bounce code if applicable, and a timestamp.
Step 3: The platform processes each event automatically.
For hard bounces, the address is immediately added to the suppression list and removed from active sending. For spam complaints, the same suppression happens. For soft bounces, the event is logged and a counter is incremented. After 3-5 consecutive soft bounces to the same address, it is treated as a hard bounce and suppressed.

Event Types to Handle

Hard Bounces

These indicate permanent delivery failure: the address does not exist, the domain is invalid, or the receiving server has permanently rejected your sending. Action: suppress immediately after the first hard bounce. Never send to a hard-bounced address again.

Soft Bounces

These indicate temporary delivery failure: the mailbox is full, the server is temporarily unavailable, or the ISP is rate-limiting you. Action: allow your email system to retry automatically (most providers retry soft bounces for up to 72 hours). Track soft bounces per address. If the same address soft bounces on 3-5 consecutive campaigns, treat it as a hard bounce.

Spam Complaints

These come through ISP feedback loops when a recipient clicks "Report Spam" or "Mark as Junk." Action: suppress immediately. Do not email this person again unless they explicitly re-subscribe through a confirmed opt-in process. Gmail sends complaint data through Postmaster Tools rather than traditional feedback loops.

Unsubscribes

These come through the List-Unsubscribe header mechanism or your unsubscribe link clicks. Action: suppress immediately. CAN-SPAM requires honoring unsubscribes within 10 business days, but best practice is immediate suppression.

Setting Up Webhooks by Provider

SendGrid

Go to Settings > Mail Settings > Event Notification. Enter your webhook URL and enable Bounced, Dropped, Spam Report, and Unsubscribe events. SendGrid also supports signed webhook verification to prevent spoofed events.

Mailgun

Go to Sending > Webhooks. Create webhooks for Permanent Failure (hard bounces), Temporary Failure (soft bounces), and Complained events. Mailgun signs webhook payloads with HMAC for verification.

Amazon SES

SES uses SNS (Simple Notification Service) for event notifications. Create an SNS topic, subscribe your webhook URL to it, then configure SES to publish bounce and complaint notifications to that topic. SES also supports configuration sets for per-campaign event routing.

Elastic Email

Go to Settings > Notifications > Webhooks. Set your endpoint URL and select the event categories to receive. Elastic Email provides bounce, complaint, and unsubscribe events.

The Suppression List

Your suppression list is a master list of email addresses that should never receive your email again. It should contain all hard-bounced addresses, all spam complainers, and all unsubscribes. Before every campaign send, your platform should check each recipient against the suppression list and exclude any matches. See the suppression list guide for more detail on managing this list.

Platform feature: The Email Broadcast app processes bounce and complaint webhooks from all major SMTP providers automatically. When events come in, addresses are immediately suppressed from all future campaigns. The suppression list is shared across all your broadcasts, so a bounced address from one campaign is automatically excluded from every future send.

Protect your sender reputation with automatic bounce and complaint handling. Every event is processed in real time, keeping your list clean automatically.

Get Started Free