Bounces

What is Automatic Bounce Processing

Automatic bounce processing allows the application to periodically login to your bounce email account, download your bounced emails, analyze them and categorize them accordingly depending on the severity of the bounce, then set your contact’s status accordingly.

What are Email Bounces

Bounces are emails that are not delivered to the recipients and are returned to the sender instead. Bounces can occur for a number of reasons such as the email address is invalid, their inbox is full, their mail server is down, and many more. When this happens, the email is “bounced” back to you (or to the address you specify as the bounce email address). This comes in the form of a simple message known as a Non-Delivery Report (NDR) or bounce notification that lets you know what email address bounced and the reason why it happened.

Types of Bounces

Soft Bounce

A soft bounce is generated by an error that is temporary in a nature such as “user’s mailbox is full” or “relay problem”.  If it is a soft bounce, the system will record the soft bounce but will take no action on the email address until it soft bounces 5 times. Once an email address has soft bounced 5 times, it is treated as a bounced email and will not be emailed to any more.

Hard Bounce

A hard bounce occurs for errors that are more persistent such as “email address does not exist” or “invalid domain name”. They are processed as a “bounced” email right away. When a hard bounce email is found, the contact is not usually removed from the contact list. Instead, its status is updated such that the application no longer attempts to send it emails in the future. It is kept to avoid trying to send them email in the future by re-adding them later. If you really want to remove a bounced contact permanently, you have an option to auto-delete it after a period of time that you can set.

Note: If a bounce message is not recognized then the application will ignore that email.

Importance of Processing Bounces

If you continually send emails to invalid email addresses, you sender reputation will be lower, affecting your email deliverability. ISPs will start blocking your mails and you run the risk of having your server altogether black listed. Processing your bounced emails will keep track of what emails have bounced so that you do not send to these addresses anymore.

Interspire Email Marketer automates bounce processing.

How to Automatically Process Email Bounce Backs

Terminology

  • List Bounce Email is the email address that the Non-delivery reports are sent to. When an email bounces, the reporting server sends a “bounce email” (the NDR) to the specific list bounce email address that you have setup for this purpose.
  • Bounce Account Details are the details that Interspire Email Marketer uses to be able to connect to the mail server and the particular email account that you set up as the List Bounce Email. This allows Interspire Email Marketer to view the emails in the list bounce email box and process soft and hard bounces and update your contact’s status accordingly.

Set the Bounce-To Address

There are three places where you can set the Bounce-To address. The first one is through the /Settings/Bounce Settings page, the second is when you create or edit a contact list, and the last is the option to enter a different bounce email address when you are sending an email campaign.

The Bounce-To address will receive any emails that “bounce” off the receiving mail servers. It is advisable to use a Bounce-To address that will only be used for bounce purposes, such as [email protected]

Tip: Avoid using a very publicly visible or common email account to avoid receiving spam in your bounce account.

Fill in the “Bounce Account Details” section

You must fill in the “Bounce Account Details” section for every contact list that you want bounce processing to handle. The bounce account information includes your bounce mail server, username and password. You will also need to provide the protocol to use to connect to the mailbox such as POP3 or IMAP.

Additional advanced settings may be required to enable Interspire to connect to the mailbox.

For example, if you send your bounces to a Gmail account, set your bounce settings as follows:

Bounce Server: imap.gmail.com:993 OR pop.gmail.com:995
Bounce Username: [email protected]
Bounce Password: application password

Note that by default Gmail does not allow the use of your account password to connect to your mailbox. You will have to enable two-factor authentication (2FA) and set up an application password specifically to connect to your mailbox via POP or IMAP.  Please consult Google’s guide to Sign in with App Passwords for details.

Additionally, you must also enable POP or IMAP access to your mail box. Please consult Check Gmail through other email platforms for details for Gmail users and Turn POP and IMAP on and off for users for Google workspace users.

Note: If Gmail marks the bounces as spam, simply mark them as safe/not spam inside the Gmail Junk folder.

If you have set a default bounce account details by configuring it through the Settings/Bounce Settings page, the details when creating a contact list will be automatically filled-in with these default values.

If you modify the bounce details in the contact list, that contact list will use the new details rather than the ones set in the /Settings/Bounce Settings page.

Note: Updating the bounce account details in the /Settings/Bounce Settings page will not retroactively update the individual lists bounce settings.

You can also modify the bounce details at the time of sending a specific campaign.

Processing The Bounces

You will need a cron job (Linux) or scheduled task (Windows) running on the server to execute the application’s cron script for the automatic bounce processing to work.

Cron Support Enabled

You can schedule automated bounce processing from the /Settings/Cron Settings page, then adjust the frequency of bounce processing on your server. Please note that bounce processing can be very resource-intensive. It is best to set larger intervals for bounce processing than scheduled sending or other cron tasks to lower the load on your server.

When it is scheduled to run, IEM will access your bounce mailbox and attempt to automatically process your bounced emails. If it encounters any issues, it will send an email to the server administrator email address informing them of the problem with some notes on the error experienced and possible ways to fix the problem.

Manual Processing

You can access this from the Contact Lists/Process Bounced Emails option on your top menu. From here, you will have to choose which contact list you want to process emails for, and also confirm the correct server details. Follow the step by step instruction to process any bounced emails from your list.

Other Settings

If you receive an error similar to the message below:

Certificate failure for xxxxxxxxxxxx: self signed certificate: /C=--/ST=xxxxxx/L=xxxxxx/O=xxxxxxx/OU=xxxxxx/CN=xxxxxxxxx/[email protected]xxx.xxxx Please check the details and try again.

You need to tick the “Do not validate certificate” option under “Advanced Settings”.

If you want to change the number of times a soft bounce can occur before it becomes a hard bounce, backup then edit the ~/admin/functions/api/subscribers.php file and search for:
var $softbounce_count = 5;
You can change the 5 to the number of times emails to a contact can bounce for a soft reason.

Reports

Statistics

Your subscriber will be tagged appropriately and you can access all bounce related statistics from the /Statistics/Email Campaign Statistics or /Statistics/Contact List Statistics pages. The Email Campaign Statistics page will display all the details about the email campaign with a pie graph on opened, unopened and bounced emails, while the Contact List Statistics page will display the contact summary with a bar graph on unconfirmed, confirmed, unsubscribes, bounces and forwards.

Bounced Email Addresses

If you would like to see the email addresses that have a status of bounced you can filter your contact lists by status Bounced.

Consult our Email List Management Best Practices to maintain clean lists and minimize your bounces.

Bounces FAQ

Your server does not have the required modules installed to process bounces. PHP-IMAP

If you have received this error message then you need to have your hosting provider install the PHP-IMAP module for you on your server. Interspire Email Marketer needs this module to be able to process bounced emails.

The PHP-IMAP module is a code library that gives PHP 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 do not install this module by default, and you need to consult your web hosting provider directly and ask them to install the PHP-IMAP module.

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 or a firewall issue on your web server. You need to ensure that outbound connections are permitted on your server on the port you are trying to connect to, and that the destination server is accepting inbound connections. You may need to consult with your web hosting provider to troubleshoot this issue. Here are some common email connection ports:

  • POP3 – port 110
  • IMAP – port 143
  • 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.

We strongly recommend only using SSL encrypted connections.

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 7 and above. Oftentimes though, many servers provide dual compatibility for both PHP 5 and PHP 7. When cron processing attempts to analyze bounces, it uses PHP’s command line interface (CLI). Many times, server administrators may have configured this CLI to run using PHP 5 rather than PHP 7, or perhaps have not given the same level of permissions to the CLI. You need to consult your web hosting provider and verify that the PHP CLI has the same permissions as normal PHP, and that it runs PHP 7.

PHP 5 has been end of life for many years now. Interspire no longer supports PHP 5. Upgrade to a newer version of PHP.

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 FAQ, you are positive there should be a subject match for your NDR, 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.

Sometimes, mail servers are not configured properly to return those extra headers and strip them, and bounce emails are not processed correctly as a result.  To see if those headers are missing, enable full headers in your email client. If you are missing the “X-Mailer-SID” and “X-Mailer-LID” headers, you will need to change settings on your mail server to not strip these extra headers, and this should fix this issue.

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

There is a setting that lets you delete all emails from your bounce mailbox after bounce processing is completed. This option is located at the bottom of the bounce server details box. Please be aware this option should not be used with manual bounce processing if the email box is used for multiple contact lists as manual bounce processing can only process one contact list at a time and NDRs for other lists might be deleted before bounce processing is done for them.

I have processed bounces but there are still bounce emails on my server that I know should have been removed according to my rules. Why?

If you send your bounced emails to one account, say [email protected], for all contact lists and then you process bounced emails for ‘contact list 1’ you will still have emails in your [email protected] email box for ‘contact list 2’.

You will need to process bounces for all contact lists to remove all the bounced emails.

If you wish to keep your bounces completely separate, then you can continue using different bounce accounts. This can be helpful if you have different clients using the application so that the bounces go to @domain.com for the domain.com client and to example.com for the example.com client.

Also, if you expect to have a lot of bounces, say you are sending to 3 lists of 500,000 contacts then it could be an idea to keep the bounce accounts separate so that the bounce mailboxes do not fill up and cause problems.

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 have followed this guide and still cannot get bounce processing to work, please open up a support request. Our support engineers will review your installation and configuration settings, and attempt to identify the problem.