📧 Email Deliverability 8 мин. чтения

Email Bounce Management & List Hygiene

Handle email bounces properly, understand hard vs soft bounces, and maintain list hygiene to protect your sender reputation.

Bounce Types

Type SMTP Code Meaning Action
Hard bounce 550, 551, 552, 553 Permanent failure (address does not exist) Remove immediately
Soft bounce 450, 451, 452 Temporary failure (mailbox full, server down) Retry, remove after 3-5 attempts
Block bounce 550 + policy text Rejected by policy (spam filter, blacklist) Investigate and fix root cause

Common SMTP Bounce Codes

550 5.1.1 — User unknown (hard bounce — remove address)
550 5.7.1 — Message rejected (spam filter or policy)
552 5.2.2 — Mailbox full (soft bounce — retry later)
421 4.7.0 — Temporarily rate limited (slow down sending)
450 4.2.1 — Mailbox disabled (soft → remove after retries)

Automated Bounce Processing

Your email service provider (ESP) handles most bounce processing automatically, but if you run your own mail server:

# Pseudocode for bounce handling
def process_bounce(bounce_event):
    if bounce_event.type == "hard":
        # Permanent failure — never send again
        subscriber.status = "hard_bounced"
        subscriber.suppress()

    elif bounce_event.type == "soft":
        subscriber.soft_bounce_count += 1
        if subscriber.soft_bounce_count >= 3:
            # Persistent soft bounces → treat as hard
            subscriber.status = "soft_bounced"
            subscriber.suppress()

    elif bounce_event.type == "complaint":
        # User marked as spam — critical
        subscriber.status = "complained"
        subscriber.suppress()  # Required by law

List Hygiene Practices

Regular Cleaning

  • Remove hard bounces — Immediately, no exceptions.
  • Suppress complaints — Anyone who marks you as spam is permanently removed.
  • Re-engagement campaigns — After 90 days of no engagement, send a "do you still want to hear from us?" email. Remove non-responders.
  • Sunset inactive subscribers — Remove addresses with no engagement after 6-12 months.

Prevention

  • Double opt-in — Confirm email address before adding to list.
  • Email validation at signup — Use syntax and MX record checks.
  • Avoid role addressesinfo@, admin@, support@ have high complaint rates.
  • Honor unsubscribes instantly — Process within 24 hours (legally required within 10 days in CAN-SPAM).

Monitoring List Health

Metric Healthy List Needs Attention
Hard bounce rate <0.5% per send >2%
List growth rate Positive Declining
Engagement rate >20% opens <10%
Complaint rate <0.05% >0.1%
Unsubscribe rate <0.5% >1%

Tools for Verification

Before sending to an old or purchased list (which you should not purchase), verify addresses:

  • ZeroBounce, NeverBounce, BriteVerify — Bulk email verification services.
  • MX record check — Verify the recipient domain has active mail servers.
  • SMTP check — Connect to the recipient's mail server and verify the address without sending.

Смотрите также