Email bounce tracking system

=Introduction=

The email bounce tracking system is capable of tracking down and marking the emails that were not delivered to the recipients (survey participants). The system relies on the "email delivery notification failure report". Therefore, it needs an email address where the emails can be sent to in order to track the bounces. Along with the address of the account, the credentials of the account are also required as well as the connection details.

=Requirements=

The php5-imap module must be installed on your server. You can check if this is the case by looking at the Show PHPinfo button, found on the global settings page of your LimeSurvey installation, under the Overview tab:



Next, look for an imap section (use control+F for a quick search). If an imap section is shown, you are good to go:



If you don't have php5-imap installed and you have root access to the server, you can install it following the procedure specific to your distribution. For example, check this link if you use Debian. Just remember to restart your web server once it is installed (e.g. run "apache/usr/sbin/apache2ctl restart" in terminal).

=How it works=

The basic idea behind the development of the system was to reduce the manual work and reduce the possible human errors that might arise from manually editing every field.

The basic idea behind this system is that when sending the email, the email bounce tracking system automatically adds a survey-id and token-id to the email header without the notice of the administrator.



These headers (also known as custom headers) are added to each invitation email sent via LimeSurvey to the survey participants.

When the email is bounced back, the original header along with the delivery notification header is received. The system then checks for new emails and parses the emails that have these custom headers. It changes the font color of the wrong email addresses from the survey participants table in red.

=Setting up the system=

The system is capable of working globally (for all the surveys) or locally (only for a specific survey), thus the settings can be saved accordingly. The bounce global settings can be saved under Global Settings -> Bounce Settings. The following options will be displayed:




 * Default site bounce email: This is the email address where bounced emails will be sent to. For a faster processing of the bounced emails, we recommend the usage of an email address that is used only for the LimeSurvey email bounce tracking system.


 * Server type: If set to "Off", no bounce processing functions will be available. Choose either "POP" or "IMAP" to make use of LimeSurvey email bounce tracking system.


 * Server name & port: Name of the server and (if needed) the port separated by a colon. The port number isn't typically needed unless the email host uses a non-standard port.


 * User name: The user name for the POP/IMAP account.
 * Password: The password for the POP/IMAP account.
 * Encryption type: If encryption is used, please set the right one here (SSL or TLS).



If you want to apply bounce settings only to a single survey, access the desired survey -> go to the survey menu and click on the Survey participants tab -> check the main toolbar of the page and click on Invitations & reminders option -> click on Bounce settings. The following page will be loaded:



The additional option is represented by the Used bounce settings. Here, you can choose whether you use:
 * no bounce settings;
 * the local bounce settings. If picked up, you will have to fill out the rest of the local bounce settings fields;
 * the global bounce settings. In this case, the bounce settings of your LimeSurvey installation will be used.

Note: LimeSurvey will initialize the SMTP connection from the IP address of your LimeSurvey installation. Just ping the URL of the LimeSurvey installation to find out which one it is. In case you have your SMTP server locked down you will need to add this IP address as an exception to your SMTP configuration/firewall.

On using LimeSurvey PRO email server
If you are using the LimeSurvey Professional email server, all your emails will have the sender address "noreply@limesurvey.org". However, these emails will have a Reply-to header with your email address. So, in case someone tries to reply, they can write to you directly.

Even though this system can be easily set up (by leaving the bounce settings fields empty), it has one downside: if an email cannot be transmitted to the email receiver and bounces back, then you won't get any notifications whatsoever.

Starting Bounce Processing in v3.0
Before starting the bounce processing, do not forget to first send the email invitations to your survey participants.

In version 3.0+, once the email bounce tracking system has been set up, you can start bounce processing by accessing the survey home page -> click on the Survey participants tab from the survey menu -> click on Invitations & reminders (located on the toolbar) -> Start bounce processing.



After selecting this option, a progress indicator will be displayed during the process, followed by a final processing status summary.

The sent email invitations will start to be examined. The scan results will be shown on the Survey participants table (you may have to manually refresh the page to actualize it). All the entries whose invitations were bounced will have their email addresses marked in red font. Also, their Email status is changed from "OK" to "bounced".



Starting Bounce Processing in v2.5
In version 2.50+, once the bounce processing system has been set up, you can start bounce processing. from the survey home page: Invitations & reminders -> Start bounce processing.



After selecting this option, a progress indicator will be displayed during the process, followed by a final processing status summary.

The sent email invitations will start to be examined. The scan results will be shown on the Survey participants table (you may have to manually refresh the page to actualize it). All the entries whose invitations were bounced will have their email addresses marked in red font. Also, their Email status is changed from "OK" to "bounced".

=Example=

To better understand how the LimeSurvey email bounce tracking system is working, check the below example:

1. Introduce your respondents to the survey participants table. Make sure that each of them has an assigned token and email address.

2. Select the respondents to whom you wish to send the survey invitation:



Click on the Selected participant(s)... button, and choose the send email invitations option.

3. Wait for some moments in order to make sure that the emails were sent to the survey respondents.

4. Now, you can make use of LimeSurvey email bounce tracking system. Click on Invitations & reminders and fill in the bounce email settings fields with the connection and account details of your personal email account:



You could also leave the fields empty. The bounce processing will still work, only that you will not get any bounce-processing-related email. However, the email status of the entries from the survey participants table will get updated.

''As you may observe below, we use the email bounce tracking system with the help of a free Gmail account. To find out about the Gmail-related connection settings, access the following link. Also, do not forget to enable IMAP/POP from the settings of your Gmail account.''



Fill in the fields. Select the desired server and encryption settings. Once done, click on the Save button located on the upper-right part of the screen.

5. Now, you can click on start bounce processing button:



The email bounce tracking system will start to look for the survey-id, token-id, and delivery notification which are attached to the email header of each bounced email. If these custom headers exist, the system will change the font color of the wrong email addresses from the survey participants table in red. Also, the email status of the respective entries will be switched from OK to bounced.