Automatic bounce processing allows the application to automatically login to your account, download your bounced emails, and then analyze them and categorize them accordingly depending on the severity of the bounce. The application sends the campaign's ID and other details through 'X-Mailer' headers in the email. In order for automatic bounce processing to work you need a cron job (linux) or scheduled task (windows) running on the server to execute the application's cron script (/admin/cron/cron.php), and you also need to set up the bounce account's connection details for every contact list that you want bounce processing to handle.
How It Works
- When you create your contact list you define the default Bounce-To address. However, when sending a campaign you can also define a Bounce-To address. The Bounce-To address will automatically receive any emails that “bounce” off receiving mail servers. It's typically useful to pick a Bounce-To address that is not used for any other purpose, such as email@example.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.
- You MUST fill in the bounce account's connection details for every contact list that you want bounce processing to handle. When you're creating a contact list the default bounce settings, which you can set default bounce details from the Settings → Bounce Settings page, are automatically filled in. 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.
- 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.
- 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 KnowledgeBase article already addresses this problem, available here: http://www.interspire.com/
“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 'Connection Timed 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
If your mail server is on a port other than 110 or 143, you will need to enter the port number for the "Default Bounce Server" field like this: "server_address:port_number" (ie for Gmail, it should read "pop.gmail.com:995" or "imap.gmail.com:993"). Also, if the port is different from 110 or 143, you will most likely need to enable SSL. If you are using Gmail or another provider that requires you to connect over SSL, please read this article for some additional setup tips.
You may download this port checking script and upload it to your server's email marketer folder and load it in your browser. If you see that the port you are trying to use shows "not responding", you will need to speak with your webhost to open that port.
“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 requires the use of 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. To fix those issues, just follow these steps:
1.) First you should enable bounce debugging so you can see which emails are getting ignored. To do that open /admin/functions/api/bounce.php and change line 40 to "true", so that it looks like:
var $Debug = true;
2.) With debugging enabled go to Contacts Lists -> Processed Bounced Emails, select your list and click "next", select "process bounces manually" and click "test connection and continue". Click "Find bounces" on the next page.
3.) As it goes through the bounces it will generate a log in the /admin/temp/ directory in your installation called "bounce.debug.log". Open that log and look for emails that were ignored.
As an example, one entry in the log might look like "Line 1013; Subject 'test' does not match pattern". To fix that you will need to open your bounce rules and then add 'test' to the array of subjects.
Another example is if the subject was recognized but the email body was not, such as this entry:
Line 774; processing body: In connection with my maternity leave until mid-May I mail my check and respond less frequently. It could be a while before you answer.
Line 819; Looking for RFC 3464 & RFC 3463 pattern
Line 879; RFC pattern not found, continuing with rules
To fix that you will need to open your bounce rules and add a string from the body to a rule, like:
$GLOBALS['BOUNCE_RULES']['delete']['delete'] = ' maternity leave';
I chose "delete" because it seems like the subscriber will still be receiving the email, so the bounce message can be deleted/ignored.
If you are unable to resolve this issue with the above steps, please open a ticket from your client area and we can help you further.
“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, Email Marketer gives you the possibility to edit your own bounce rules to add to the default rules defined in Email Marketer. 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 Email Marketer 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?”
There is a setting 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 Interspire's 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.