How to handle bounced email


What is bounced email address?

If you send email and it fails to arrive at its intended recipient for any reason (incorrect user name, network failure, etc.), the message "bounces" and returns to you. That is what we call “bounced email”

According to RFC, bounced email is returned to the email address in SMTP MAIL FROM command. Bounce address is different from the “FROM” address you see on your email message. They can be the same but they are two different things. The “FROM” name and address you see on your email message is added using SMTP DATA command, while bounce address comes from MAIL FROM command. SMTP server keeps a record of bounce address just in case that the email message is undeliverable, SMTP server can return that message to the bounce address. Bounce address does not appear any where in your email message. Some SMTP servers will add it as Return-path to the header of an email message, some servers will not do anything with it. According to RFC, SMTP server can take bounce address out after an email message reaches its destination.

When we send out a campaign to a big list, there will be many emails bounced. If we make bounce address same as FROM address, our people will get 100s or 1000s of bounced email in their inbox. This will not be a nice situation. So we have to use a different email address for bounced email.

How to handle bounced email?

Normal way
We can use a different email address for bounced email. All bounced email will returned to that email address, so we can use a pop client to check that email account and process those bounced email.

Below is an example of bounced email. We can analyze the email text, find the email address which is undeliverable and mark it in the database.

Your message did not reach some or all of the intended recipients.
Subject: will you come back?
Sent: 01/17/2005 16:42
The following recipient(s) could not be reached:

'aabcde@planet.nl' on 01/17/2005 16:42
550 5.1.1 unknown or illegal alias: aabcde@planet.nl

This sounds like a good solution. However SMTP server will decide itself the content of bounced email. That means in above example, the email address "aabcde@planet.nl" can appear anywhere within the email message or even not in that message at all. This makes it not 100% reliable in handling bounced email.

Our special solution

We found out that by using a catch all account, the handling of bouced email become very simple.

In our application, in order to process bounced email automatically, you need to have a catch all email account.

Catch all account is a special email account which direct emails that sent to NotAvailableUser@yoursite.com to the email address of your choice.
If you do not have extra catch all account available, you can simply ask your domain registrar to create a sub domain with a MX record for you, so you can use a catch all account such as xxxx@sub-domain.yoursite.com

We specify bounce address as news+{id}@yoursite.com. {id} contains id to identify that email address as well the list it belongs to. An example of bounce address is: news-g19e-14444332@umailcampaign.com

Our application will check that catch all account every 10 mins for any new message. If found, it will mark that email address in the database.

We do not mark every email address that was returned. We mark an email address as return by using below rules.

  • When an email address was returned, it will not be marked as “Return” immediately in the database. Application will start a counter to count how many time this special email address was returned. Only after an email address has been returned more than the "soft return times" defined in SETTING/global, it will be marked as return.
  • Within the same day, for an email address, no matter how many times it was returned, it will only be counted as one time.
  • If an email address does not return for half a year, the counter will restart. For example, if an email address was returned 2 times on 2003, after that everything goes ok. On Jan.2005, that email address was returned again, it will only be counted as 1 times instead of 1+2=3 times.


  • back
    Contact Us | Privacy Policy | Terms & Conditions
    Copyright © 2007 Yardi Technology Limited.