Managing Your Email Campaigns with phpList | WebReference

Managing Your Email Campaigns with phpList

By Arpan Dhandhania


The popular email campaign manager phpList is open source, free to download and easy to use. The company Tincan is the commercial sponsor behind phpList, which comes in two forms: a hosted solution or a download that you can set up yourself on your server. If you don't want to go through the hassles of setting up and managing the system, you should go for the hosted solution (starting at US$5 per month).

If you choose to set it up on your own server, you don't need to pay anything. However, Tincan also offers a service to set it up for you on your server (starting at US$185). Otherwise, you could just follow this article to set up phpList on your own and save yourself a few bucks.

Installing phpList

Installing phpList is very simple. Just make sure you have the following details for your server before you install:

  • FTP host, username and password
  • MySQL database host, username, password and a database

Now follow these steps to install phpList on your server.

  1. Download phpList in your preferred format.
  2. Extract the source code.
  3. Upload lists/ to the server using FTP. (The other files and folders are for your reference only.)
  4. Edit the configuration file:
  • Open lists/config/config.php in your favorite text editor.
  • Change the following to match your server's details:

    Database Connection Settings
    – $database_host: Where is the MySQL database installed? The most common installations have it on the same server as the Web server, so localhost should be fine.
    – $database_name: On which database should the phpList tables be installed?
    – $database_user: What is the user's name who can insert, update, select and delete from the above database?
    – $database_password: What is this user's password?

    phpList Table Names
    Very often, people prefer to use a single database for all the tables in a given project. To avoid any confusion created by ambiguous table names, phpList by default prefixes all its tables with phplist_. This also makes taking backups easier. You can change the prefix string for your setup by changing the $table_prefix and $usertable_prefix variables.

    Specify the Location of Your phpList Files
    Finally, you need to specify where the phpList files are located on your server. If you have installed phpList in a directory called lists in the root directory, the default settings should work:
    – $pageroot = '/lists';
    – $adminpages = '/lists/admin';

    Important: You can't change the name of the admin directory. It has to be called admin and should be located in the phplist folder. You can, however, change the name of the lists folder to anything, for example newsletters.
  • In the browser , go to http://YOURDOMAIN.COM/lists/admin (assuming that you installed phpList in a folder called lists). A Web-based installer will walk you through the rest of the installation.
  • Creating Lists and Adding Users

    After you have installed phpList successfully, you are ready to create a list. Log in as the administrator and go to the lists page. (The default username/password is admin/phplist.) This page lists all your lists. :) You can add a new list by clicking on the add a list link. Creating a list doesn't need any further explanation. Remember to make the list active by checking the active checkbox.

    To add a user, you can either go to the user's page and click on add user, or you could get him/her to subscribe through the subscribe page: http://YOURDOMAIN>COM/lists/?p=subscribe.

    But why didn't she receive an email to confirm her email address?

    That's because by default phpList is in test mode, where everything works but emails don't go out. You need to get out of the test mode to be able to send out emails. Open the configuration file (lists/config/config.php) and look for the following line (it should be around line 190):

    To get out of test mode, you need to set TEST to zero. Change the above line to:

    Save and upload the file to your server. Try and add a user again. This time the user should receive an email asking her to confirm her email address.

    At this point, you are all set. People can subscribe and unsubscribe from your mailing list and you can send them emails using phpList.

    Sending a Message to a List

    To send a mail, you must go to the send a message page. This page is divided into six sections. Let's go through each one step by step:
    1. Content: This where you draft the message that will be sent out.
    2. Format: You can choose to send the message in HTML or as plain text. You can also use a template for the message.
    3. Scheduling: If you want to send the message at a later point, you can specify when it should be sent out.
    4. Criteria: You can send the message based on certain criteria depending on the attributes you assign for users in the selected lists.
    5. Lists: Choose the lists to which you want to send the message.
    6. Misc: Specify the email address to which a message should be sent before and after the message has gone to the users.

    After you are done configuring the message, to finally send the message to the users, go to the Lists tab and click on Send Message to the Selected Mailinglists.

    The message has been queued for sending. Now, click on process the message queue. This will actually send out the messages. This process could take quite a while depending on the number of users in your mailing lists.

    That's it! Your mailing list is ready. People can subscribe and unsubscribe from your lists whenever they like.