Bounce Processing

Bounce Processing

Bounce Processing

What is bounce processing?

When you send an email to an email address, if the recipient email address is invalid or has a problem such as technical issues, the email will be returned to the sender. Just like in the real world, when you send a mail to someone but if the recipient address is invalid or if that person doesn’t live on that address any more, the mail will be returned to you. It’s the same case with the bounce processing in email delivery.

Why is bounce processing important?

There are tons of valuable information in “Deliverability” section about this topic but when it comes to successful email delivery, your “sender reputation” matters a lot. And your sender reputation is built based on many factors. Sending email to invalid email addresses and doing this repeatedly is one of the most effective way to ruin(!) your sender reputation.

Therefore, if you are looking for a way to build a long-lasting, consistent email marketing operation, you need to pay attention to bounce processing. Whenever a bounce (invalid email delivery) occurs, you must detect this and remove that recipient email address from your lists.

What does high bounce rate mean?

The short answer is; “you have collected email addresses without getting their permission to send emails”. The long answer is; you have a email list with poor quality. There might be out-of-date email addresses which do not exist any more, or email addresses which are idle for years but they have been turned into “spam traps” by ISP’s. Of you have an email list with no opt-in confirmation which has resulted your competitors and hackers to subscribe many invalid or spam trap emails to your email lists.

If you have high bounce rate and if you are not getting rid of those email addresses in your email lists, then you have a big problem. You will never be able to build a sustainable email delivery reputation. Your email marketing campaigns will suffer, you will get lower opens and clicks and most of your emails will either be rejected by recipient mail servers or your emails will end in the spam folder.

How does a bounce occur?

This diagram shows an example email delivery from your SMTP server to the recipient SMTP server and then possible ways of bounce reporting.
This diagram shows an example email delivery from your SMTP server to the recipient SMTP server and then possible ways of bounce reporting.

When you create and send an email campaign in Oempro, or an autoresponder is triggered and delivered to the subscriber, Oempro first renders the email according to RFC standards. Email headers, email body parts and other required parameters are rendered to make sure that the email is ready to be delivered to the recipient email address.

The next step is to delivery the rendered email to your SMTP email delivery server. Once it’s received by your SMTP server, it checks the recipient email address, finds the SMTP server of the recipient and performs a connection to the recipient SMTP server to deliver the email.

Bounce report can occur in two different ways:

  1. Synchronous bounce
  2. During the delivery of the email from your SMTP server to the recipient SMTP server, if there’s a problem (such as invalid email address, over-quota mailbox, etc.), the recipient SMTP server will reject the email delivery and it will return a delivery status notification (DSN) code. These codes can be either 4.x.x or 5.x.x codes. RFC#3463 defines these DSN codes.

    Here’s an example to the sync bounce report:

    image
  3. Asynchronous bounce The recipient SMTP server may accept the email with 2.x.x success DSN code but then it may send a DSN email to the “sender” email address with the error report. The error DSN code and explanation can be included in this report email.
  4. Here’s an example to the async bounce report:

    image

Bounced email types

There are two bounced email types:

  1. Permanent bounces (a.k.a. hard bounces)
    1. This bounce type returns a 5.x.x DSN code and it means that there’s no reason to continue sending to this recipient email address. The problem is permanent. Some example reasons;

    2. Invalid email address
    3. Invalid domain MX
    4. Spam blacklisting related rejections
  2. Temporary bounces (a.k.a. soft bounces)
    1. This bounce type returns a 4.x.x DSN code and it means that there’s a temporary problem with the recipient email address or recipient mail server and if you try again in following hours, it will be okay. Some example reasons;

    2. Over-quota mailbox
    3. Temporary DNS resolution
    4. Temporary technical problems with the SMTP server

The important thing here is, you should immediately stop sending to hard bounces but continue sending to soft bounces. Oempro has capability to identify hard bounces and perform bounce processing only for hard bounced email addresses.

What needs to be done?

Both sync and async bounces must be processed and those related recipient email addresses must be removed from your subscriber lists. Otherwise, you will continue sending emails to these recipients and consistent delivery attempts to invalid email addresses will damage your email delivery reputation quickly.

Setting up bounce processing

In this section, we will cover both async and sync bounce processing setup.

Async bounce processing setup

For async bounce processing, Oempro includes a built-in inbound SMTP server. In order to make this module work, you need to setup MX record of your delivery server MFROM domains point to your Oempro domain.

Please refer to Delivery Servers settings for more information about setting up your delivery servers and MFROM domains.

If your Oempro domain is oempro.yourdomain.com, you need to set this domain as “MX” record for your delivery server MFROM domains. Let’s say your delivery server MFROM domain is senderdomain.com. Then you need to set the following DNS record:

senderdomain.com MX (Priority:10) oempro.yourdomain.com

This will make sure that when you send an email and async bounce occurs, the async bounce DSN email will be sent to the Oempro domain.

On port 25, Oempro’s built-in async bounce SMTP server is running and it will greet any incoming connections for DSN email delivery.

However, to avoid open relay security breach, Oempro will reject any email delivery attempts with an unknown recipient email address domain. To “whitelist” your sender domains and “whitelist” them, go to [Admin Area → Settings → Email Delivery] and under “Email Delivery” tab, scroll down to the “Relay Domains” list.

Enter your MFROm domains to this field, one domain per new line:

image

Once you set your relay domains, the next step is to reload SMTP server settings. On the Oempro server in SSH connection, type the following command:

docker exec -ti oempro_bounce supervisorctl restart all
docker exec -ti oempro_app supervisorctl restart all
docker exec -ti oempro_system supervisorctl restart all

Once this setup is completed, your async bounce system will start working.

To setup bounce processing rules, go to [Admin Area → Drop Down Menu → Bounce Processing] section:

image

On the “Bounce Processing” section, you will see your daily bounce processing statistics:

image

Under “Bounce Patterns” tab, you can see the list of pre-defined patterns. When a DSN report email is received, Oempro scans the email content for each one of these patterns and try to classify it as “soft” or “hard” bounce report.

You can customize these patterns, add your new patterns. You can find pre-defined patterns below:

The pattern is written on the left side and the classification (either Soft or Hard) is written on the right side. The insert ==> between these parts.

Sync bounce processing setup

In order to process synchronous bounce DSN reports, you need to perform basic integration with your MTA. The integration process will be different based on the MTA you are using. We have explained the sync bounce integration with popular MTA’s below.

Integration with PowerMTA

PowerMTA has capability to log incoming sync bounce DSN reports to a log file. To process these PowerMTA log files and push them to Oemrpo, we will use Logstash. Logstash is a small yet powerful tool which can monitor log files and push them to remote services.

Once you have installed Logstash on your PowerMTA server, make sure that the following Logstash pipeline configuration is set:

The next step is to edit your PowerMTA configuration file (/etc/pmta/config) and add the following logging directive:

That’s it. Once you reload your PowerMTA configuration (pmta reload), PowerMTA will start writing incoming sync bounce DSN reports to the bounces.csv file and Logstash will push them to Oempro’s bounce processor.

Integration with Postfix

ℹ️
We haven’t written this article yet. Please contact us if you are interested in learning about this topic.

Integration with GreenArrow

ℹ️
We haven’t written this article yet. Please contact us if you are interested in learning about this topic.

Integration with MailerQ

ℹ️
We haven’t written this article yet. Please contact us if you are interested in learning about this topic.

Integration with Hosted Email Relaying Services

ℹ️
We haven’t written this article yet. Please contact us if you are interested in learning about this topic.

On this page

  • Bounce Processing
  • What is bounce processing?
  • Why is bounce processing important?
  • What does high bounce rate mean?
  • How does a bounce occur?
  • Bounced email types
  • What needs to be done?
  • Setting up bounce processing
  • Async bounce processing setup
  • Sync bounce processing setup
💠
image

Homepage Customer Area Community Portal Contact Us

Footer Social Icons

©Copyright Octeth, Inc. All rights reserved.