DIY: Manage email campaigns with phplist

Phplist is a powerful and easy to install open source tool that makes it easy for small shops to create lists and send announcements for email marketing campaigns.

An email marketing campaign is one of the easiest marketing tools for any small business. In one email, you can inform thousands of customers and/or potential customers about specials, services, and other important information.

If your small business has a LAMP (Linux Apache MySQL PHP) server, you have everything you need to set up phplist, which is the most popular open source email marketing tool on the planet. Phplist offers loads of features, including:

  • One-way email announcement delivery system
  • Easy to use Web Interface
  • Sends messages from your web server (not your client)
  • 100,000 + subscribers
  • No duplicate or "forgotten" messages
  • Open/View Tracking
  • Click Tracking
  • Multiple Subscribe Pages
  • Templates/Multiple Templates
  • Subscriber Attributes
  • User Specific Content
  • HTML email messages
  • HTML Editor
  • Internationalization
  • Easy Install
  • Multiple List Administrators
  • Subscriber Preferences
  • User Management tools
  • Bounce Processing
  • Advanced Bounce handling
  • CSV Import and Export
  • Attachments
  • Send a Web page
  • RSS feeds
  • PDF messages can be automatically created
  • Batch Processing
  • Throttling
  • Domain Throttling
  • Scheduled Sending


Step 1: Download and uncompress the file

Download the compressed archive of the phplist tool and move the archive to your web server's document root. Once the file is in your document root, issue the necessary command to unpack the file. If you're on a Ubuntu server machine, you can do the following:

1. Open a terminal window.

2. Change to the document root of the server (/var/www/).

3. Issue the command sudo tar xvzf phplist-XXX.tgz (XXX is the release number).

4. Change into the newly created phplist-XXX directory.

5. Change into the public_html directory.

6. Move the lists directory into the document root of your web server (/var/www) with the command sudo mv lists /var/www/.

You're ready to start setting up phplist.

Step 2: Create a database

Phplist uses a database to hold its information; since the installer is not capable of creating the database, you must do that manually. This doesn't mean you must drop to the MySQL command prompt and create the database via command line; I highly recommend you use a tool such as MySQL Workbench. You will need to have the name of the database, as well the username who can connect to the MySQL server, their password, and the address of the MySQL server.

Step 3: Edit the config file

Open the file /var/www/lists/config/config.php with your favorite editor (you'll need admin privileges) and edit these entries to fit your setup:

  • $database_host = "localhost";
  • $database_name = "phplist";
  • $database_user = "root";
  • $database_password = 'password';

Save and close that file.

Step 4: Start the web-based installation

This is the fun part. Point a web browser to http://ADDRESS_OF_SERVER/lists/admin and the web-based installation will start. When the page opens, you'll notice that your install is in testing mode (which is necessary for installation and configuration) and that there is a link pointing you to the Initialize Database page (Figure A). Figure A

You cannot initialize the database until you see this warning, because you have no idea where to go. (Click the image to enlarge.)
Click the link to initialize the database so the tables for the database can be created. After this process is complete, you'll be pointed to the php setup page (Figure B), where you'll be directed to each piece you need to configure. Here's a little trick: For some reason, you are not re-directed back to the setup page when you configure an option; so instead of clicking one of the options, right-click and select Open In New Tab. Figure B

For each section, right-click the Go There link and open that link in a new tab or window. (Click the image to enlarge.)

Each of the configuration pages are self-explanatory. You'll encounter the following:

  • Change Admin Password: The admin username will remain the same ("admin").
  • Configure General Values: Configure website address, domain, person in charge, etc.
  • Configure Attributes: Set up the attribute you want new users to have to enter to be a part of the mailing list. These attributes are global, so they apply to all lists.
  • Create Lists: Set up your lists.
  • Create subscription pages: Create subscription pages where users can subscribe to your lists.

Step 5: Set your phplist to live

It's time to take your phplist off testmode. You can do this by opening the config.php file and looking for this entry:


Change that entry to:

Click the Send Email link in the right nav to send a test email to make sure it's all working (Figure C). Figure C

As you can see from the tabs, there are a number of options available during the message creation phase. (Click the image to enlarge.)

Now that phplist is up and running, it's time to fine tune the tool to best suit your needs. After you add users and lists, you can tailor templates to fit your company's email marketing plans.