PHPlist – Open Source Email Newsletter Manager (Mass Mailing) Application for Linux

phpList is one of the most popular open source mailing list manager that has a capability of sending newsletters, news, messages to a huge number of subscribers. It provides a user friendly interface where you can manage newsletter, subscriptions lists, newsletter reports, notification and much more. You can also call it as mass mailing software. It’s very easy to integrate with any website.

Install phpList in Centos
phpList Newsletter Manager for Linux

The phpList uses MySQL database for storing information and the script is written in PHP. It runs on any web server which helps the administrator to set up a system for newsletter subscription wherein the users can subscribe to the respective mailing list. You can manage your own mailing list and also attach files to the emails (deal announcement, business documents) etc.

The software was designed for GNU/Linux with Apache. It is also supports other Unix-like systems, such as FreeBSD, OpenBSD, Mac OS X, and Windows.

phpList Demo’s
  1. Watch Frontend Demo of script – http://demo.phplist.com/lists/
  2. Watch Admin Demo of script – http://demo.phplist.com/lists/admin/

Features of phpList

  1. phpList is great for newsletters, notifications and many other uses. It is capable of managing large number of mailing list subscribers. It even works well with small list too.
  2. Phplist web interface allows you to write, send messages and manage the phplist over the internet. However it keeps on sending messages even though your system is turned off.
  3. The templates are fully customizable and can be integrated with several website.
  4. Keep a track of number of users opened your email message.
  5. With the help of FCKeditor and TinyMCE editors you can edit HTML messages. You can give a choice between text or html email message to your subscribers.
  6. It delivers the message in a queue so that each and every subscriber gets the message. It also ensures that they do not receive two copies even they’re subscribed to several list.
  7. Subscriber’s Attributes such as name, country etc. can be personalized, that means you can specify the important information that you need from the users at the time of subscription.
  8. User Management tools are good to maintain as well as manage huge databases of subscribers.
  9. Throttling can limit the load on your server so it doesn’t overload.
  10. Schedule sending allows you to schedule your message as on when the message is to be sent. RSS feeds can be automatically sent to a mailing list weekly, daily, or monthly.
  11. Phplist is presently available in English, French, Portuguese, German, Spanish, Dutch, Traditional Chinese, Vietname and Japanese. Work Translation for other languages in still in progress.

Requirement of phpList

In order to install PhPlist application we require:

  1. GNU/Linux operating system
  2. Apache web server<./li>
  3. PHP version 4.3 or higher
  4. PHP Imap Module
  5. MySQL server version 4.0 or higher
Testing Environment
  1. Operating System – CentOS 6.4 & Ubuntu 13.04
  2. Apache – 2.2.15
  3. PHP – 5.5.3
  4. MySQL – 5.1.71
  5. phpList – 3.0.5

Installation of phpList Newsletter Manager in Linux

As I mentioned earlier that phpList is developed in PHP for Linux with Apache. So, you must have a running Web server with PHP and MySQL installed on the system. Additionally, you also have to install IMAP module for bounce message processing. If not, install them using package manager tool called yum or apt-get according to your Linux distribution.

Step 1: Install Apache, PHP and MySQL

Install on Red Hat based systems using yum command.

# yum install httpd
# yum install php php-mysql php-imap
# yum install mysql mysql-server
# service httpd start
# service mysqld start

Install on Debian based systems using apt-get command.

# apt-get install apache2
# apt-get install php5 libapache2-mod-auth-mysql php5-mysql php5-imap
# apt-get install mysql-server mysql-client
# service apache2 start
# service mysql start

Step 2: Create phpList Database

Once you’ve installed all the required packages on the system, just login to your database (MySQL, here).

# mysql -u root -p

Enter mysql root password. Now create a database (say phplist).

mysql> create database phplist;
Query OK, 1 row affected (0.00 sec)

It is not a good practice to access database from root user directly, hence create a user called ‘tecmint’ and grant all the permission to user on the database ‘phplist‘ with a password to access it. Replace ‘my_password‘ with your own password, we need this password later while configuring phpList.

mysql> grant all on phplist.* to tecmint@localhost identified by 'my_password';
Query OK, 0 rows affected (0.00 sec)

Now reload privileges to reflect new changes on the database and quit the mysql shell.

mysql> flush privileges;
Query OK, 0 rows affected (0.08 sec)

mysql> quit;
Bye

Step 3: Download and Install phpList

Now go the official phpList site and download the latest source tarball (i.e version 3.0.5) using below link.

  1. http://www.phplist.com/download

Alternatively, you may also download the latest source package using the following wget command.

# wget http://garr.dl.sourceforge.net/project/phplist/phplist/3.0.5/phplist-3.0.5.tgz

After Downloading the phplist package, unpack the package files. It will create a directory called ‘phplist-3.0.5′ in this directory, you will find a ‘public_html‘ which contains the directory lists.

# tar -xvf phplist-3.0.5.tgz
# cd phplist-3.0.5
# cd public_html/

Now Copy the “lists” directory into a Apache web root directory that can be accessed via the web.

# cp -r lists /var/www/html/        [For RedHat based Systems]

# cp -r lists /var/www/            [For Debian based Systems]

Step 4: Configuring phpList

Open phpList configuration file ‘config.php‘ from the ‘lists/config’ directory in your preferred text editor.

# vi config.php

Add the phpList database connection settings such hostname, database name, database user and database password as shown below.

# what is your Mysql database server hostname
$database_host = "localhost";

# what is the name of the database we are using
$database_name = "phplist";

# what user has access to this database
$database_user = "tecmint";

# and what is the password to login to control the database
$database_password = 'my_password';

You need to edit one more setting, by default phpList in ‘testmode‘, so you need to change the value from ‘1‘ to ‘0‘ to disable testmode.

define ("TEST",0);

Once you’ve entered all the details details. Save and close the file.

Step 5: Access phpList Application

Finally, point to your browser at ‘lists/admin‘ directory of your phpList installation. A web-based installation wizard will walk you through the rest.

http://localhost/lists/admin

OR

http://ip-address/lists/admin

Note: If your website ‘example.com‘ is pointed to the directory ‘/var/www/html/‘, and you have placed your phpList files under ‘/var/www/html/lists‘, then you should point your browser to http://www.example.com/lists/admin/.

phpList Installation Wizard
phpList Installation Wizard

Now click on ‘Initialise database‘ and fill information about your organization and set ‘admin‘ password.

phpList Database Initialisation
phpList Database Initialisation

Once, database initialise completes, continue to phpList setup to complete your configuration as per your requirements.

phpList Database Initialisation Completes
phpList Database Initialisation Completes

Once, setup complete. Login into your phpList admin panel.

phpList Admin Login
phpList Admin Login

Start creating new campaigns, view campaigns, add/delete users, view statistics and many more features to explore from the Dashboard.

phpList Dashboard
phpList Dashboard

That’s it! Now, you can start customizing and branding of your newly installed phpList newsletter manager application.

Reference Links

phpList Homepage

I know most of the users, don’t know how to install and configure applications in Linux. If you’re looking for someone to host/setup a phpList on your hosting/personal server, contact us why because we provide a wide range of Linux services at fair minimum rates.

Do let me know if you’re using any other newsletter application which is more robust than the phpList and don’t forget to share this article.

Hey TecMint readers,

Exciting news! Every month, our top blog commenters will have the chance to win fantastic rewards, like free Linux eBooks such as RHCE, RHCSA, LFCS, Learn Linux, and Awk, each worth $20!

Learn more about the contest and stand a chance to win by sharing your thoughts below!

Ravi Saive
I am an experienced GNU/Linux expert and a full-stack software developer with over a decade in the field of Linux and Open Source technologies

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.

40 Comments

Leave a Reply
  1. sir i have configure phplist in my local pc but sir i type the url in my pc then there is no database in my webpages….

    Reply
    • @Ankush,
      Have you created phplist database in your server as per instructions shown in the article? If yes, can you show me the screenshot of your webpage?

      Reply
  2. After installation, It is not showing Initialize Database Option. Page is Black. When I am checking it in Google Chrome Console, It shows 500 Internal server Error.
    What should i do ?

    Reply
    • @Jeeten,
      It seems your installation wasn’t successful..can you please follow steps carefully…and let me know..if you still gets same error..

      Reply
  3. Hi

    we have exchange server 2010 on windows platform and we install phplist on centos kindly guide us where i can put SPF record.

    Thanks

    Reply
  4. Hi

    Kindly help we are unable to send email on any Gmail id give error

    The following organization rejected your message: gmail-smtp-in.l.google.com.

    Thanks

    Reply
    • @Ravikant,
      Please check the logs of Apache for any errors..have you entered correct details while initializing database details?

      Reply
  5. hi,

    thanks for this great tutorial! I did everything, however, the back office is not appearing when I go to my browser any help/advice

    Thanks

    Reply
  6. Hello,
    I m trying to send mail to gmail account but it is getting failed. I have tried various settings in config.php file but it is not working. Plz help me …it’s urgent..

    Reply
  7. Hi Ravi –

    Great Guide! It all seemed to work but when I try to send emails, it says successful but nothing is received.

    Test mode is set to 0

    Any ideas?

    Reply
  8. Dear ravi saive. I intall phplist3.0.6 on centos 6.5. When i try to send mail it show test mail failed. Please help me.

    Reply
  9. Hi Ravi, Thanks for the introduction to phplist. I’ve been looking a mailing list manager to test and this information has been so helpful.

    Have you also tested version 3.05? My email address is registered in this comment. I’d appreciate if you could get in touch with me so we can further discuss about PHPlist.

    Reply
  10. Hi Ravi Saive ,

    Nice tutorial, but maybe you can help me.

    With the installation everything is fine but how to configure the bounce mail and to install all program for that.

    Thx

    King regards.

    Reply

Got Something to Say? Join the Discussion...

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.