0

When you send an email that gets rejected by the server for some reason, you may get a bounce-back message with useful information about why the email was bounced, such as an RFC status code. Is there a way to get this same information without actually sending an email, like some kind of ping? So that, I could say: If I were to hypothetically send an email to address@domain.com, can I know definitively if it will bounce? And if it will bounce, what would the bounce-back look like?

I have a distribution list. If a message bounces back, the intended recipient is flagged. If they get flagged 3 times consecutively, I stop sending them mail. The purpose is so my server does not waste resources constructing and queuing emails to bad addresses, while they sit and gum up my mail queue.

I want to make the ban "probationary," where I test the address in the future to see if it still bounces. Maybe their inbox was just full, and now it isn't. Or maybe their server was blacklisting my IP, and I have since been whitelisted. Is there any way to determine this without actually sending them an email? If it bounces again, it could then potentially continue to gum up my mail queue and waste server resources, which I am trying to avoid.

I'm using qmail on CentOS.

chiliNUT
  • 1,253

1 Answers1

1

The only think you could do is look at the bouncing reason and maybe differentiate between a non-existent user or some other 'permanent' reason (bad email address likely to continue failing indefinitely) and a transient reason (including inbox full) where you could keep retrying periodically, maybe using a progressively increasing delay scheme to not waste resources - but not give up for good.

Other than that no, you can't find out if a retry will bounce since you don't know if the transient condition still exists or not.

You could go into more details here: https://www.oasis-open.org/khelp/kmlm/user_help/html/how_email_works.html