[Advanced Search]

The Bounce Processing "How To" Guide

Perhaps the best way to understand any problems that might be experienced with bounce processing is to understand exactly how the entire process works. It's a relatively simple idea that lets you ensure you only send email campaigns to subscribers who wish to receive them, increasing happiness across your client base, and it also ensures higher deliverability rates because less people will report your campaigns as spam that the end user does not really wish to receive. 

How It Works 

Here are the steps that must occur to let you accurately process bounce emails 

  1. When sending a campaign, you can define a Bounce-To address. This address will automatically receive any emails that “bounce” off receiving mail servers, typically with lots of helpful information on what exact deliverability problem was experienced. It's typically useful to pick a bounce email address that is not used for any other purpose, often times of the form bounce@yourdomainname.com.

    Any subscribers viewing your email headers will realize you take pride in keeping an updated, accurate subscriber list, and it will also lead to less clutter than you would experience using a normal mailbox, as bounce messages typically grow with the size of the list, meaning your mailbox could be receiving hundreds or even thousands of bounce emails per campaign send. The image below shows where to define your Bounce-To address in your Send an Email Campaign page.
    Your browser may not support display of this image.

  1. So you've sent a campaign, and you're pretty sure that you had at least a few bounces. In fact, maybe you logged into your bounce email address and you KNOW you have some bounces to be processed. In the past, you would have to manually read each email, take note of the address affected, and decide on the best course of action. With the application, you just need to have the login details for your bounce account. It will automatically login to your account, download your bounced emails, and then analyze them and categorize them accordingly depending on the severity of the bounce.

    You can set default bounce details from the Settings → Email Settings page, and you can also define bounce account details on a per list basis through the View Contact Lists → Edit page. You may need some extra information from your webhost or network administrator as to whether your account is POP/IMAP capable, and if there are any extra settings required to login to your bounce account's mail server. To see common problems and mistakes made in configuring bounce processing, please consult the FAQ at the bottom of this document.

  1. So you've setup your Bounce-To address, and you've configured your server details. You know you have bounce emails, and you want to process them. At this point, you have two options, depending on your server configuration. If you have cron support enabled, you can schedule automated bounce processing from your Settings → Cron Settings page. This lets you adjust the frequency of bounce processing on your server. Please note that bounce processing can be very resource-intensive. It's best to set larger intervals for bounce processing than scheduled sending or other cron tasks to lower the load upon your server.

    When it's scheduled to run, IEM will access your mail server and attempt to automatically process your bounced emails. If it has any problems, it will send an email to the server administrator email address informing them of the problem and with some notes on the error experienced and possible ways to fix the problem. 

    If you don't have cron enabled, or don't wish to automatically process bounced emails, you can still process them manually. You can access this from the Contact Lists → Process Bounced Emails option on your top menu. From here, you'll have to choose which contact list you want to process emails for, and also confirm the correct server details. Once again, if you have trouble accessing your mail account, please review the helpful hints at the bottom of this guide. 

  1. After processing your emails, subscribers will be marked appropriately, and you can access all bounce related statistics from the Statistics → Email Campaign Stats or Statistics → Contact List Stats pages. Hard bounces will make a subscriber be marked as “Bounced” by the application after one bounce, and deal with problems like “email address doesn't exist” or “invalid domain name”. Soft bounces take 5 times to remove a subscriber from your list, and deal with more common problems like “relay problem” or “mailbox is full”.

Something Doesn't Work! 

You followed the steps, read the guide, and you're sure that you've done things correctly, but something isn't working still and you can't process your bounces. Here are some very common bounce processing errors, and the proper solutions to fix these problems. 

“I get an error message about a certificate failure when trying to test my bounce server details.” 

A Help article already addresses this problem

“I can't connect to the server in my bounce server details.” “I'm trying to connect to my bounce server but receiving a message about 'connection refused' or 'time out'.” 

This problem is typically caused by a port configuration/firewall issue on your web server. You'll want to ensure that outbound connections are permitted on your server on the port you're using, and that the destination server is accepting inbound connections. You may need to consult with your webhost to troubleshoot this issue. Here are some common email connection ports. 

POP3 – port 110

IMAP – port 143

Secure IMAP (IMAP4-SSL) – port 585

IMAP4 over SSL (IMAPS) – port 993

Secure POP3 (SSL-POP) – port 995 

“When testing my bounce server details, everything works properly. However, when cron attempts to do automated bounce processing, I receive an error message about ____ in my email”. 

IEM 5.5 now requires the use of PHP 5, and previous versions of IEM were recommended to be run on PHP 5. Often times though, many servers provide dual compatibility for both PHP 4 and PHP 5. When cron processing attempts to analyze bounces,  it uses PHP's command line interface. Many times, server administrators have configured this CLI to run using PHP 4 rather than PHP 5, or perhaps have not given the same level of permissions to the CLI as PHP's normal interface. You'll need to consult your webhost and verify that the PHP Command Line Interface has the same permissions as normal PHP, and that it runs using PHP 5. 

“I receive a message about installing the 'PHP-IMAP' module when I attempt to process bounces. What is this module and why do I need it installed?” 

The PHP-IMAP module is a special code library that adds upon the normal functionality of PHP, and enables extra functions such as the ability to access IMAP and POP3 email accounts to download, view, and delete emails from remote email accounts. Some servers don't install this module by default, and you need to consult your webhost directly and ask them to re-compile PHP with support for the PHP-IMAP module. 

“My bounce email inbox seems to have more bounce messages, but bounce processing does not remove these messages. Why not?” 

     The application takes a number of steps when verifying whether or not an email is a bounce email. Firstly, it analyzes the subject of the message for known bounce email subjects such as “Deliverability Failure” or “Bounce Notification”. It must match one of these subjects before the application proceeds to process the email further. Many times these bounce messages can fail if the subject is a reply to the original message, which is the way some receiving mail servers have configured their bounce messages to do.  

For example, a bounce from the email campaign with subject “X-Mas Specials!!!” could return as “Re: X-Mas Specials!!!”, and the application does not properly categorize it as a bounce. If you are experiencing this issue, open a ticket in the client area and we can help you further with processing these bounces correctly. 

“There are bounce emails in my bounce email inbox, but they have subjects that should have been caught by the application. What are some possible causes?” 

If after reading the previous ticket, you're positive there should be a subject match for your bounce messages, there may be some other causes. To identify which subscriber and which list the bounce message deals with, the application attaches special headers to the email so it can identify the subscriber later. Sometimes, mail servers are not configured properly and they strip these extra headers, and full bounce messages are not processed correctly as a result. Enable full headers (From Thunderbird, go to View → Headers → All. From Outlook Express, right click your message, and go to Properties → Details. If you are missing the “X-Mailer-SID” and “X-Mailer-LID” headers,  you'll need to change settings on your mail server to not strip these extra headers, and this should fix your issue. 

“I have the right subject, and I have the right headers on my bounce messages. Is there any other reason the application isn't catching my bounce messages?” 

Sometimes, the bounce rules simply can't positively identify your bounce messages properly. Mail servers use many different message formats and obscure error codes, and it's hard to keep up with the times. Luckily, the application gives you the possibility to edit your own bounce rules to add to the default rules defined in it. You can add these rules into the /admin/resources/user_bounce_rules.php file, following the format used in the /admin/resources/bounce_rules.php file. This will enable you to add onto the functionality of the application and ensure you can properly categorize every bounce message you ever receive. 

“I don't seem to have any more bounce emails in my bounce email inbox, but the inbox still has other unrelated messages (autoresponders, out-of-office replies, etc.) . How can I wipe these emails from my inbox?” 

IEM 5.5 introduced a new feature, that lets you wipe ALL emails from your inbox after bounce processing is completed. This option is located at the bottom of the bounce server details box, and will wipe any other emails also after bounce processing completes. Please beware though, as this should not be used with manual bounce processing if the email inbox is used for multiple contact lists, as manual bounce processing can only process one  contact list at once and true bounce messages for other lists might be wiped before bounce processing properly analyzes them. 

“My problem isn't really described by the above issues, or these don't seem to fix my problem. What should I do?!” 

If you've followed this guide from end to end, you're probably pretty confident that you understand every aspect of its bounce processing tool. Unfortunately, sometimes you can't fit every problem into an easy solution. If you are positive you have followed this guide and still can't get bounce processing working, please open up a ticket in the client area. Our support engineers will review your installation, your configuration settings, and attempt to identify the problem.

NOTE: If your issue deals with categorizing bounce emails correctly and you're about to open a ticket, you can take an extra step to greatly improve the response time for solving your problem! 

There is an internal option to turn on error debugging for bounce processing. Doing this first before opening a ticket, and attaching it to your ticket, will greatly improve response time as it takes one less step off the list of things a support engineer will have to perform when they examine your installation. You can enable debugging by editing the following line, at about line 40 of the /admin/functions/api/bounce.php file: 

var $Debug = false; 

Change this line to the following: 

var $Debug = true; 

Next time you process bounced emails, it should create a file called bounce.debug.log in your /admin/temp/ folder. This will let a support engineer analyze the processing of emails and why specific emails are categorized (or not categorized) the way they are.

User Opinions (4 votes)
25% thumbs up 75% thumbs down

How would you rate this answer?
Not helpful