Hard vs Soft Bounce: when to retry an email and when to stop
Your app sent 3 emails. All 3 came back. Should you send them again? It depends on why they came back. A bounce means the receiving server refused the email, but not every refusal is the same. Soft bounce: not now The
Your app sent 3 emails. All 3 came back. Should you send them again?
It depends on why they came back. A bounce means the receiving server refused the email, but not every refusal is the same.
Soft bounce: not now
The refusal is temporary. The mailbox may be full, or the email may be too large. It can still be delivered later, so you can try again after the cause goes away.
Deferral: still trying
The MTA (Mail Transfer Agent, the server that delivers your email) received a 4xx reply and keeps trying. If it works, the email is delivered. If the MTA gives up, it becomes a bounce.
Hard bounce: stop
The refusal is permanent. A reply like 550 5.1.1 means the mailbox does not exist. Sending again will not fix it and can hurt your reputation.
What to do in your app
- Add hard bounces and spam complaints to a suppression list, a list of addresses your system skips before sending.
- Listen to webhooks so your app knows what happened. Without them, it never learns that the email came back.
- Watch your bounce rate. The Resend guide suggests keeping it below 4%.
Not every bounce deserves a second try. Does your app handle bounces today?
Source: Resend Docs, Email Bounces
Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.