Guide to Email List Manager Scripts

A mailing list manager script allows you to send batch emails to a group of subscribers. Also known as newsletter script, it proves to be extremely useful to send bulk emails for your email marketing campaigns including newsletters, publicity lists and other notification emails.

How Mailing List Managers work?

  1. A user signups up (opt-ins) for your mailing list using an online form or via a subscription center.
  2. The subscriber might receive an email notification asking him to confirm his opt-in (double opt-in) and receive a welcome email acknowledging his subscription.
  3. The mailing list manager will treat his email address along with other profile information as a subscriber and assign him to the mailing list he opted-in.
  4. The administrator (also known as email marketer) can create an email campaign blast for that mailing list by using built-in email templates.
  5. The subscriber will receive the email in his email account (can be either desktop or webmail client)
  6. In the event that the subscriber wants to stop receiving future emails from that mailing list, he can unsubscribe (opt-out).

Types of Mailing List Managers

Script based

These types of mailing list managers can be purchased for a fee (either on a per license or server basis) and installed on your server. You’re then free to use it for as many subscribers, mailing list and email sends. They are usually available as

  • – PHP Mailing Lists Managers
  • – ASP Mailing Lists Managers
  • – CGI & Perl Mailing List Managers
  • – ASP.NET Mailing List Managers.

Remotely Hosted

There are also remotely hosted mailing list managers that are offered as SaaS which will allow you to send emails for a recurring subscription fee. While it can be expensive in the long run, they can be more reliable in terms of delivery and SPAM-Compliance.

Major Components of a Mailing List Manager

Most mailing list manager differs from each others in terms of functionality, however the following major components are to be found in each one.

List and Subscriber Management

This is an admin-only management system that allows you to import, export, edit, update and delete subscribers of your mailing list. The ability to maintain a cleanse mailing list relies on the ability of the script to manage the subscriber list via automated tools like bounce processing, duplicate email address remover, etc.

Opt-in and Opt-out

Opt-in and opt-out are processes that subscribers use to either join your mailing list or unsubscribe from them. Opt-in can happen via an online form or subscription center, but can also be done manually by the administrator via batch file import. On the other hand, opt-out are usually placed as unsubscribe links in the footer of each emails. (as per CAN-SPAM Acts). Some mailing list managers will also offer double opt-in option whereby which a subscribe has to validation and confirm his email address before he is added to the list.

Campaign Management

Campaign management is the heart of a mailing list manager. It allows you to compose emails using either custom or pre-built email templates, set personalization preferences and send the email either immediately, scheduled or on defined intervals (auto-responders).

Tracking and Statistics

To measure the effectiveness of your campaign, most mailing list managers offer tracking of key metrics for your campaign including open-rate, click-rate, bounce-rate, etc. Statistics are usually provided in the form of graphics, charts or click-overlays.

Choosing a Mailing List Manager

The key in choosing a mailing list manager ultimately relies on one that meets your email marketing needs, however we recommend that you take the following tips into consideration:

CAN-Spam Compliance

The CAN-Spam Act is a set of rules that establishes requirements for commercial messages. Mailing list managers that are CAN-Spam compliant will offer features like automated bounce back handling, one-click unsubscribe and forced contact information in the footer of your messages.

Email Speed Throttling

Most web hosting companies applies strict rules on the number of total outgoing emails to prevent their SMTP servers from being blacklisted in RBLs.  If your mailing list size is above 500 and you send frequent mailings, it is recommended to ensure that your mailing list manager can limit the number of outgoing emails per hour.

Web Hosting Requirements

It can be tricky to install and configure a newsletter script on your hosting company’s server. Some will require that you use mail agent (Sendmail), PHP Mail() function or even an authenticated SMTP service. Always check with your hosting company to ensure that that it meets the requirement before purchasing.


What precisely is IonCube? Why is it present on almost every present-day hosting server running PHP?

In order to avoid the reverse engineering of script applications, a lot of developers encrypt their code with tools like ionCube PHP Encoder and make it human unreadable. The latter is valid for paid apps in particular, since anybody could possibly use and modify the unencrypted code without paying the needed license fees. If you buy web software protected with ionCube PHP Encoder, you’ll be able to use it without any problems as long as an instrument called ionCube Loader is present on the website hosting server. This loader makes it possible to execute encrypted files and you will often see it as one of the prerequisites for a certain script application to be installed. As the encrypted files are already precompiled, they’re ordinarily executed more rapidly and this will boost the overall speed of your website.


See why a lot of system administrators head straight for Debian whenever choosing an Operating System for their servers.

Debian is a Linux distribution, that’s widespread for desktop machines, but it has been becoming more popular as a server OS over the last few years as well. It is very dependable and secure, as fixes are released in just a couple of days after a problem is discovered. Debian has a huge support community, so when you have any questions or problems with the OS or with any of the 30,000+ packages it is equipped with, you can easily contact the developers immediately through email using special e-mail lists and receive a response within 15-20 min. The Debian community offers the best level of support possible, as your questions will be handled by the very same people that built Debian in the first place, so they have a detailed knowledge of how their own system works. Because the Operating System is absolutely free to use and distribute, no license charges will be included with your web hosting fees and you can customize the program code files and any other software that you install with no restrictions, so as to optimize the software environment for your websites. In addition, Debian performs very well on any kind of hardware, because it’s light and fast and doesn’t need a lot of memory.


Node.js is a leading-edge event-driven system, which is used to set up scalable web apps. It is built with the Google V8 JavaScript engine and it handles HTTP requests and responses between a server and an immense number of online users much more efficiently than any conventional platform. What makes Node.js unique is the fact that in difference between traditional platforms that handle the info in giant hunks, it handles everything in little bits. For instance, when a user needs to fill in several fields on an Internet site, Node.js processes the info from the first field as soon as it’s entered, utilizing the server’s processing resources more efficiently. In comparison, conventional platforms wait for all the fields to be filled and while the info from them is being processed, requests from other users remain in the queue. The difference may be negligible for a single person, but it absolutely does make a difference when a large number of individuals are navigating a site at the very same time. Several instances of sites where Node.js can be applied are dinner booking portals, web-based chat rooms or interactive browser-based game portals, in other words sites that need quick real-time interaction.

Create Your Own PHP Error Log File Archive

Since most Web Hosts don’t provide access to Apache error logs on shared hosting packages for technical reasons, you can create your own error logs for debugging PHP Scripts.

Insert the following code in your PHP script. (Or create separate file and add the code in it. Include the file using include().)

/* we will do our own error handling. */error_reporting(0); // Turns off all error reporting./* user defined error handling function. */function userErrorHandler($errno, $errmsg, $filename, $linenum, $vars){    // timestamp for the error entry.    $dt = date('Y-m-d H:i:s (T)');    // define an assoc array of error string    // in reality the only entries we should    // consider are E_WARNING, E_NOTICE, E_USER_ERROR,    // E_USER_WARNING and E_USER_NOTICE.    $errortype = array (                E_ERROR => 'Error',                E_WARNING => 'Warning',                E_PARSE => 'Parsing Error',                E_NOTICE => 'Notice',                E_CORE_ERROR => 'Core Error',                E_CORE_WARNING => 'Core Warning',                E_COMPILE_ERROR => 'Compile Error',                E_COMPILE_WARNING => 'Compile Warning',                E_USER_ERROR => 'User Error',                E_USER_WARNING => 'User Warning',                E_USER_NOTICE => 'User Notice',                E_STRICT => 'Runtime Notice'                );    // set of errors for which a var trace will be saved.    $user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE);    $err = "<errorentry>\n";    $err .= "\t<datetime>" .$dt. "</datetime>\n";    $err .= "\t<errornum>" .$errno. "</errornum>\n";    $err .= "\t<errortype>" .$errortype[$errno]. "</errortype>\n";    $err .= "\t<errormsg>" .$errmsg. "</errormsg>\n";    $err .= "\t<scriptname>" .$filename. "</scriptname>\n";    $err .= "\t<scriptlinenum>" .$linenum. "</scriptlinenum>\n";    if (in_array($errno, $user_errors)) {        $err .= "\t<vartrace>" .wddx_serialize_value($vars, 'Variables'). "</vartrace>\n";    }    $err .= "</errorentry>\n\n";    // save to the error log file, and e-mail me if there is a critical user error.    error_log($err, 3, '../error_log.log');    if ($errno == E_USER_ERROR) {        mail('', 'Critical User Error', $err);    }}$old_error_handler = set_error_handler('userErrorHandler');

PHP’s error_reporting() function sets which PHP errors are reported. The error_reporting() function sets the error_reporting directive at runtime. PHP has many levels of errors, using this function sets that level for the duration (runtime) of your script. The script’s error_reporting(0) turns off all error reporting so the script can catch and save the errors to a file.

PHP’s error_log() function sends an error message somewhere. Now you have your own error log archives file that you can link to and look at!

Perl Scripting

Perl is an efficient programming language that’s widely used for creating CGI scripts and also different web-based applications. Among its main advantages is the fact that it supports modules – ready-made batches of code that are designed to execute numerous tasks and to enhance the efficiency of a given script without slowing it with unnecessary lines of code. This means that, if five processess have to be executed, you can employ five lines of program code to call each one of the modules instead of including hundreds of lines used to create the actual modules within your script. Perl is very handy and it can be used for a variety of purposes, that’s why a lot of corporations have integrated it in their web products or on their resource-demanding sites – cPanel, IMDB, Craigslist, BugZilla, BBC and many more. It is generally used with other programming languages like PHP or Python.