What is Email Bounce Handling?

Email bounce handling is the process of managing emails that cannot be delivered to recipients. Bounces are categorized as hard bounces (permanent failures like invalid addresses) or soft bounces (temporary issues like full mailboxes). Proper bounce handling is crucial for maintaining sender reputation and email deliverability.

Types of Bounces

Hard Bounces (Permanent)

  • Invalid email address
  • Domain doesn't exist
  • Recipient server permanently rejects
  • Action: Remove immediately from list

Soft Bounces (Temporary)

  • Mailbox full
  • Server temporarily unavailable
  • Message too large
  • Action: Retry, then remove after multiple failures

Block Bounces

  • Spam filter rejection
  • IP/domain blacklisted
  • Content-based filtering
  • Action: Investigate and fix the underlying issue

Handling Bounces in Your Application

Most email services provide bounce handling via webhooks:

// Example bounce webhook handler
app.post('/webhooks/email-bounces', async (req, res) => {

if (type === 'hard_bounce') { // Immediately mark as invalid await db.user.update({ where: { email }, data: { emailStatus: 'invalid', emailInvalidReason: reason } }); } else if (type === 'soft_bounce') { // Track soft bounces, disable after threshold await db.emailBounce.create({ data: { email, reason, timestamp } }); }

res.status(200).send('OK'); }); ```

Test your bounce handling by sending to known invalid addresses in staging.

Testing Bounce Handling

Testing bounce scenarios requires different approaches:

Webhook Testing

  • Use your email service's test endpoints
  • Simulate bounce webhooks in integration tests
  • Verify user records are updated correctly

End-to-End Testing

  • Some services provide special addresses that always bounce
  • Test that bounced users are handled in your UI
  • Verify re-engagement flows for soft bounces

Note: plop.email is for testing successful delivery. For bounce testing, use your email service's testing features.

Try email bounce handling with plop.email

Get started with reliable email testing in minutes.