phpList 3.2.0 is here: campaign meta data, parallel processing, clearer import summaries and community news feed.


phpList logo

phpList 3.2.0 has arrived. There are lots of features and fixes in this version of phpList, which also marks an all time high for community engagement in the phpList project.

New features have been introduced to improve campaign management, configuration, subscriber management and user interface. These area’s have been targeted for development based on responses to our community survey in 2014.

In addition to these features, we are pleased to introduce a community news feed into the app. We hope this will further engage our community, extend a warm welcome to all and, of course, keep everyone up-to-date with the latest phpList news.

Campaign management

Campaign meta data

There is a new zone in the campaign creation window, entitled campaign Meta Data. The first item we have added to this area is the much requested campaign title.


This is super useful if you have several campaigns with identical subject lines: if you use a slightly tweaked text or placeholders for different lists, or want to run an a/b test, well, now you can differentiate between these campaigns easily.

The campaign title is displayed on the view campaigns page, above the subject line. The campaign subject is displayed in bold.


Thanks to alpha1 and others for the suggestion, we hope you enjoy your this new feature!


Process Campaigns in Parallel

Riktam requested an option to process campaigns in parallel rather than one after another. This option, which will be popular with big senders, means that if you send several campaigns to the queue, they will be processed all together, rather than in order of submission. This option, documented here, can be enabled in the config file.


Subscriber Management

SubscriberConfirmed: A check before welcome emails are sent

phpList will now check if a subscriber is confirmed (or not) to a specific list before a welcome email is sent. This avoids multiple welcome messages being sent if a subscriber leaves the subscribe page open. If a subscriber signs up to an additional list, however, they will still receive a welcome message.

Thanks to Trucmuche for reporting this issue, and to duncanc, Namak and Thewitt for additional feedback.

Menu item for add subscriber

Henk van Dijk and duncanc suggested we add a short-cut option for adding a new subscriber. Here it is:


Thanks guys, enjoy your speedy-er clicks!

Regular expressions on header during bounce processing

Your bounce processing regex will now be run on the headers as well as body of bounces. This allows better handling of “out of office” and “autoresponder” bounces. Thanks to mcippa and bst2002 for requesting this.

Show or hide private lists on [LISTS] page

The [LISTS] placeholder prints all the lists a subscriber belongs to in the campaign body. It is often used to encourage subscribers to update their list preferences, this keeps your lists clean and minimises unsubscriptions. You can now choose weather or not you wish for subscribers to see private lists along side the public ones when you use the [LISTS] placeholder.


Thanks to gingerling for the feature request.

Import summary improved

When you import some subscribers, or add subscribers to lists, the summary information will display as follows:


This new structure is clearer than before, especially noting the difference between adding a subscriber to the database for the first time and adding a subscriber who is already in the database to a list. Thanks to gingerling for the suggestion.

We are still looking at ways to improve the import summary, if you have any ideas you  are very welcome to suggest them.

Invalid emails addresses

In addition to the new clear structure, any invalid subscribers which failed to import, perhaps because of a malformed email address, will be listed in an email sent to the system administrators. This provides an opportunity for simple mistakes in emails to be corrected: this feature will be especially useful for campaign groups and charities who collect emails from hand written petitions.

Thanks to lwc for the suggestion.

Download all subscribers

The All subscribers list, added in version 3.0.9, now has a download subscribers button – as though it were an ordinary list. While it has always been possible to download all subscribers, this button makes it super simple, both conceptually and practically. Thanks to gingerling for the idea.

Matching by email when merging in Foreign Key

This slightly tweaked process for import helps you to implement a foreign key matching system with an already established phpList database. When you import an existing subscriber with a foreign key listed for the first time, phpList will match by email and then merge in the foreign key. Then, next time you import that information, the match will be done by foreign key alone.

Thanks to jimbits for spotting the issue and gingerling for perusing it.

User Interface

Improved list category editing

As consequence of writing a chapter in the new manual about setting up list categories, gingerling suggested some changes to the UI which could improve the overall workflow.

These include the addition of a re-edit all lists button on the Config > Categories page.


This button allows lists to be re-categorised (or un-categegorised) with ease.


The process for deleting categories has also been debugged, alongside some minor tweaks to the category creation workflow and UI. Additionally, lists will now be displayed in batches of 10 when there are more than 30 LISTS (down from 50).

Reorder long list of select type attributes

You can now re-order the select type of attribute, when there is a large number of options, for example, the country or county attribute list.


While you are unlikely to re-order all of them, you may wish to put the most common selections for your subscribers at the top in the attribute select on your subscribe page.


Thanks to toverbury, DuncanC and alpha1 for their work on this issue.

Hide your headers when manual bounce processing

niklas-rother asked us for a way to collapse the header when manually processing bounce reports, so that he could reach the report in the body of the message quicker. Thanks Niklas, we did just that!


Cancel button added to settings page editors

When you click the edit icon on any item on the config > settings page, you can now choose to cancel changes as well as save.
Thanks to lwc for this suggestion.


Send vs Queue

For increased clarity, the Send button has been renamed Queue. This makes more sense for those who schedule campaigns to send in the future, and also is more accurate in terms of how the software (and sending bulk emails) works.

Thanks to samtuke for the suggestion.



Using phpList with a reverse proxy

Thanks to hedrickbt for his patch to improve the experience of those using phpList with a reverse proxy.

Blacklist bugs

A bug introduced in 3.0.10 was causing subscribers to remain on the blacklist even after they resubscribe. On it’s own this is a small bug, but it caused a lot of issues when the Invite plugin was used. This is now fixed, thanks to jszopa, Duncanc and Michiel.

Additionally, embargo times for re-queueing or repeating campaigns have been debugged, and also the config.php has been tided up with thanks to Duncanc.

Additional and specific thanks

Additional thanks to Niklas, pttony, bst2002, lwc, hedrickbt, henktiggelaar, oll, mklzamora, deajan, Mario, Gab-lau and alpha1 for contributions not otherwise mentioned.

Specific thanks Duncanc, who has contributed several bug reports and fixes to this version you can thank him here. Also, if you haven’t heard our wonderful forum mod Dragonrider is really ill: send your get well soon wishes here. Finally, thanks of course to the team, for their ongoing support and funding of the phpList project.



Start the discussion at