A thing that trips people up constantly, and the numbers behind it are worth having in one place. ๐ฐ๐ ๐ ๐ถ๐ ๐ป๐ผ๐ ๐ฎ ๐ฏ๐ผ๐๐ป๐ฐ๐ฒ. ๐๐ ๐ถ๐ ๐ฎ ๐ฑ๐ฒ๐น๐ฎ๐. The receiving server is saying try again later, and RFC 5321 section 4.2.1 is explicit that the client should. Mailbox full, greylisting, rate limit, transient DNS trouble. ๐ฑ๐ ๐ ๐ถ๐ ๐ณ๐ถ๐ป๐ฎ๐น. Same section: the client must not try again to the same recipient. So when a platform reports a soft bounce, nothing has failed yet. A queue has opened. How long that queue stays open is where it gets interesting, because it is a local decision and not a standard. ๐๐ผ๐ฐ๐๐บ๐ฒ๐ป๐๐ฒ๐ฑ ๐ฑ๐ฒ๐ณ๐ฎ๐๐น๐๐:
- ๐ฃ๐ผ๐๐๐ณ๐ถ๐ : maximal_queue_lifetime defaults to ๐ฑ๐ฑ. Retry interval runs from minimal_backoff_time 300s to maximal_backoff_time 4000s.
- ๐๐บ๐ฎ๐๐ผ๐ป ๐ฆ๐๐ฆ: ๐ญ๐ฐ ๐ต๐ผ๐๐ฟ๐ by default, configurable from 300 to 50,400 seconds since October 2024.
- ๐๐บ๐ฎ๐ถ๐น: no published retry window at all. That last one deserves a note. The 45 hours figure that circulates comes from DSN message bodies quoted in forums, not from any Google documentation. I went looking properly and it is not there. If someone has an actual documented source I would genuinely like to see it. The 5 day Postfix default is not arbitrary either. RFC 1123 section 5.3.1.1, which RFC 5321 inherits, says the give up time generally needs to be at least four to five days. Practical consequence: the same address gets an 8.5x difference in second chances depending on what is sending. If you suppress on first soft bounce you are throwing away deliverable addresses on one stack and not the other. What is your queue lifetime set to, and did you choose it or inherit the default?