Fully functional Open Source email marketing manager for creating, sending, integrating, and analysing email campaigns and newsletters.
Branch: master
Clone or download
Latest commit 63995c0 Feb 11, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin integrated behat smtp tests into phplist3. ref #412 Nov 16, 2018
doc Fix typo on '$bounce_unsubscribe_treshold = 3' and replace 'PHPlist' … Oct 22, 2018
public_html Initialise BLACKLIST_EMAIL_ON_BOUNCE to a much higher value and ensur… Feb 10, 2019
scripts Merge branch 'master' into dev33 Jan 28, 2017
tests Add space for consistency Dec 28, 2018
.dotgitlab-ci.yml de-activate gitlab CI until it works Jan 25, 2017
.gitignore Add DS_Store to gitignore file (#397) Sep 2, 2018
.gitmodules add dressprow submodule Jun 28, 2014
.gitsvnextmodules remove old svn externals Jun 20, 2014
.php_cs exclude random_compat from code standards updates Jan 21, 2017
.styleci.yml update styleci config Nov 1, 2015
CODE_OF_CONDUCT.md add code of conduct (#429) Oct 31, 2018
CODING.md start readme on coding style Oct 7, 2015
CONTRIBUTING.md fix typos and links (#304) May 4, 2018
COPYING update to AGPLv3 Mar 10, 2015
INSTALL update some docs Oct 8, 2015
LICENSE add the LICENSE file Feb 1, 2017
README.md Update to 3.3.9 Feb 11, 2019
TESTING.md Port UAT tests to Behat 3 and Selenium2 (#252) Feb 12, 2018
TODO even more todo Jun 28, 2014
UPGRADE update some docs Oct 8, 2015
VERSION Update to 3.3.9 Feb 11, 2019
composer.json integrated behat smtp tests into phplist3. ref #412 Nov 16, 2018
default.behat.yml improved behat smtp feature, fix travis build error Nov 16, 2018


phpList 3

Build Status Stable release License

Fully functional Open Source email marketing manager for creating, sending, integrating, and analysing email campaigns and newsletters: https://www.phplist.org

phpList includes analytics, segmentation, content personalisation, bounce processing, plugin-based architecture, and multiple APIs. Used in 95 countries, available in 20 languages, and used to send more than 25 billion campaign messages in 2015.

Deploy it on your own server, or get a hosted account at http://phplist.com.


  • Responsive web-based, and command-line interfaces
  • Real-time analytics: track message responses and subscriber behaviour
  • Message-queue management: load-balances and throttles multiple accounts and campaigns; tracks every delivery outcome
  • Content personalisation: every message customised to individual subscriber attributes and preferences
  • Automated bounce management and processing: policy and regex-based handling with every bounce accessibly archived
  • Schedule, pause, resume, repeat, and requeue campaigns
  • Amazon SES: built-in optimised support
  • CSV and Excel based subscriber import and export, including attributes and preferences
  • Send a Webpage: automatic remote html polling, conversion, and dispatch
  • Email attachments support
  • Domain-based throttling: comply with host-specific policies by defining custom rules
  • RSS Feeds: phpList can be set up to read a range of RSS sources and send the contents on a regular basis to users. The user can identify how often they want to receive the feeds.

Trying out phpList

If you'd like to use phpList for your own campaigns, or you just want to try phpList out, there is no need to do all the work of installing it yourself. phpList Hosted is free to use, just sign up to get started.

If at a later time you do want to migrate from your own installation to phpList Hosted, or vice versa, your data can be migrated.

Alternatively, you can try out the latest phpList release at phplist.org. This installation is wiped and refreshed every hour.


See System requirements


See phpList development


See the Installation guide


For users

See Upgrading a manual installation

For developers

How to upgrade from any previous version to the latest version

Step 1. BACKUP your database (e.g. # mysqldump -u[user] -p[password] [database] > phplist-backup.sql)

Step 2. Copy your old configured files to some safe place

These files are: lists/config/config.php possibly lists/texts/english.inc or any other language.inc if you have edited it

Step 3. Copy the files from the tar file to your webroot.

You can copy everything in the "lists" directory in the tar file to your website. To facilitate future upgrades, ie to make it easier for you to simply copy everything I have now put the "configurable" files in their own directory. They reside in "lists/config". This is hopefully going to be the directory that you can keep between upgrades, and that will contain the only information that you want to be changed in order to make it work for your own site.

Step 4. Copy your configuration files to lists/config or re-edit the new config file sometimes new features are added to the config file, so it's better to use the new config file and re-adapt it to your situation.

An example .htaccess exists file in this directory. You should not allow access to this directory from the webserver at all. The example will work with apache.

You can overwrite the files that are there. They are example files.

Step 5. Go to http://yourdomain/lists/admin/ and choose the Upgrade link

Step 6. Click the link on this page.

This process may take quite a while if your database is large. Don't interrupt it.


Report issues to Mantis issue tracker (select project phpList)


In the directory phplists/lists/texts you will find existing translations of the public pages of phpList. You can use them in your config file to make the frontend of the system appear in the language of your choice.

In the config file there are a lot of choices to make about your particular installation. Make sure to read it carefully and step by step work your way through it. A lot of information is provided with each step.

Code of Conduct

This project adheres to a Contributor Code of Conduct. By participating in this project and its community, you are expected to uphold this code.


phpList 3 is licensed under the terms of the AGPLv3 Open Source license and is available free of charge.