August 25, 2004

PHPlist: Not your everyday Mailman

Author: Sean Michael Kerner

Like many (if not most) open source developers, I use Mailman, the GNU mailing list manager, for all of my newsletter requirements. Recently, however, I began playing with a different one-way announcement-type newsletter mailer. It's called PHPlist, and as you might guess, in contrast to Mailman, it's not Python powered. Beyond the language difference, it adds a number of useful default features, including email from RSS feeds and sophisticated user management that really extends the power of an announcement-based mailing list.

PHPlist is licensed under the GPL, and runs well on a typical LAMP setup of Linux, Apache Web server (1.3.x or 2.x), PHP version 4.3.x, and MySQL database server (version 3.23 or up). You can get the most recent version from the PHPlist site. For the purpose of this review I'm using version 2.8.11 stable, released August 5.


Installation of PHPlist is relatively straightforward -- unpack the archive, set up a database, and then start plowing through the config.php file to adjust settings to your environment. It's then a simple matter of opening the graphical administration screen in your browser and going through the long list of setup options to further customize PHPlist to your needs.

A word of caution here -- PHPlist's documentation is woefully inadequate and is spread across multiple readme files and hidden inside comment fields in config files. Not too worry too much though; the config file is well-commented and the only significant non-default setting that I found that really needed to be changed (beyond the obvious directory/path and database user/password stuff) was a flag that enables PHPlist's RSS features. The project calls these features experimental, though in practice they seem to be quite stable.

The main screen can be overwhelming, as it includes a long list of items that you can control and configure, including System Functions, Configuration, List, User, Message, and RSS functions, but it's pretty straightforward and for the most part self-explanatory. The first item, Setup Functions, is an essential step that's not the same stuff that you edit in config.php, but rather the more granular everyday stuff like setting up an administrator password, subscribe and unsubscribe page messages, and links. The program bills the setup function as essentially a quick checklist of things to set up in order to get PHPlist working correctly.

It sure would have been easier if there was just one setup that you needed to do in the GUI rather than having to both use the GUI and directly edit the config file.


Once the program is configured, using PHPlist is a simple matter of creating, customizing and managing your lists. The standard Web-based subscription and unsubscription features you'd expect are all there, plus a few interesting additions. With custom attributes fields you can do more than just capture an email address; you can also add in additional fields (i.e. geography, interests, age, etc.) to better understand and categorize your subscribers. When it comes time to mail your message, you can use those same attributes to decide who gets what message.

In addition to the run-of-the-mill user reconciliation features, PHPlist also allows an admin to reconcile users such that if you're cross-posting the same message to multiple lists, the same user won't get the same message twice. I've found this to be an incredibly useful feature, seeing as no one really wants to be hit with the same message twice -- that sort of borders on spam, doesn't it?

With the help of the free PDF library, PHPlist can also generate PDFs on the fly to be included as attachments for your mailing. (How many end users really like accepting attachments from a mailing list is another question.)


The RSS capability of PHPlist is one of the things that first caught my attention. With PHPlist (remember to set the RSS flag in the config file so it's active) you can get an RSS feed and include that content into a list mailing. The default feature is a bit limiting in that you can only include one RSS source per list. Of course, if you really wanted more content and more sources you can get around that by creating your own multi-source RSS feed, which would then be the single feed for PHPlist.

PHPlist has pretty much everything you need for an announcement-type mailing list in terms of features, and it seems to be quite stable and has a well-trafficked support Web site. It obviously lacks the capabilities of a threaded discussion tool like Mailman, which shouldn't be a surprise because it's not a threaded discussion list manager, but instead is focused on a different need.

There's a lot of richness to the features in PHPlist. In some ways it reminds me of the high-priced permission emailing systems that interactive advertising companies use. This is one piece of GPL-licensed software that should give a few proprietary closed source vendors a run for their money.

Sean Michael Kerner is a contributer to numerous publications, a freelance writer, developer, IT consultant, speaker, part owner of various digital dives, and a recovering interactive ad agency executive.

Click Here!