phpList 3.3.5 what’s new: 2 features, 9 fixes, 3 UX improvements


phpList 3.3.5 introduces two new features, three usability improvements, and nine fixes. These include a new “Bounces per Campaign” page, new ‘Powered by phpList’ buttons, and new password options when creating sub-accounts. See the Download page for installation and upgrade instructions.

Changes in this release

New statistics: Bounces per Campaign

The total number of bounces for each campaign and the full list of addresses that bounced is now accessible via the interface on the Statistics menu. You can export the data using the ‘Download addresses’ button.


  1. New option to specify the password of a new admin during the account creation process.
  2. Display the ‘Started sending’ time under ‘Processed’ section on the ‘View a campaign’ page.
  3. Improvements to the ‘Verify subscribers’ page: all duplicated elements removed for better readability and easier interaction.
  4. Minor wording, style and formatting improvements on the ‘View bounces per list’, ‘Manage plugins’, and ‘View opens’ pages.


  1. Prevent subscriber preferences view/update when using only the email address — Thanks to Philip
  2. Fix trailing spaces added using the [preferencesurl] placeholder which caused user preferences update to fail — Thanks to Philip — see the pull request for both fixes (1&2)
  3. Fixed click tracking decoding urlencoded characters — Thanks to Duncan, see the pull request
  4. Added missing file extension on the “Bounces per list” file download
  5. Fixed code printed to browser on the ‘Create a subscribe page’ page, header section
  6. Used html entities to escape subject, fromfield, text content and attachment fields on ‘View a campaign’ page for proper rendering and preventing malicious tags


  1. Use SQL “insert ignore” instead of “replace into” for cases where we want to insert a record that does not exist and make no change if the record does exist. These cases include inserting into the listuser table by the import pages and the copy and move commands on the list membership page — Thanks to Duncan, see the pull request,
  2. Add a graceful failure when phpList does not have access to random_bytes() function due to PHP version — Thanks to Michael, see the pull request,
  3. All “Powered by phpList” buttons replaced with new hi-res images, including those in campaigns and public subscribe pages. View the images here.


This release is the work of Duncan Cameron, Philip Day, Michael Altfield, and other Open Source community members, as well as phpList Ltd. developers.

To get involved in phpList development, check out the developer resources pages.


Need help upgrading your phpList server to the newest version? Ask the community at Professional support from community experts, as well as manuals, source code, and developer resources, can be found at Report all bugs to the bugtracker!

Want to focus on campaigns and forget hosting headaches? Sign up at for an account with everything included. Send from 300 free messages to 30 million messages per month — simple.

Leave a Reply