We are going to setup a self hosted email marketing system. The best open source email marketing software is phpList.

We will setup phpList CMS on a cPanel hosting account easily.

1) Download the phpList CMS first, or download latest release from phpList website

2) Upload the script (zip file) to your cPanel file manager web root’s public_html folder

3) Extract the zip file and move the “lists” folder and “index.html” file to web root’s public_html folder

Make sure that your public_html folder only contains the “lists” folder and “index.html” file. Any hidden or system files may have there as usual.

Create an additional folder “uploadimages” in public_html where the lists folder located.

4) Edit the index.html file to match the home page as your company information

5) Go to “lists” folder and then go to “config” folder (Go to > public_html > lists > config)

6) In the config folder you have to edit the “config.php” file and replace database information

Go to cPanel Home and create a database for the CMS, and create a database user, then add the user with the database with all privileges

Back to config.php file edit page and replace the database connection setting lines

7) Additionally, you will see a “config_extended.php” file in the “config” folder. You may copy some lines (Credits section for footer credit removal, SMTP configuration, etc.) from config_extended.php and insert them to config.php for extra features needed.

8) If SMTP/GoogleApp  needed, insert/replace the following lines to the config.php file

define("PHPMAILERHOST", 'smtp-relay.gmail.com');
$phpmailer_smtpuser = 'user@gsuitedomain.com';
$phpmailer_smtppassword = 'gsuite_gmail_app_password';

Important ! If the smtp mail function not work, make sure that, you can login with your smtp username and password, on mail.google.com in a web browser.

I recommend the default phpmailer for smooth functioning…

9) Also insert/replace the following Credit lines to remove footer branding



Bonus: Here is an ideal config.php file sample. Extract the zip file to get the config.php

Download: config.zip

10) Now visit the software installation page at http://companydomain.com/lists/admin

11) Click Initialize Database

phpList installation

12) Fill out some information (keep the admin password record saved) and click Continue

13) Click Do not subscribe

14) Then click Continue with phpList Setup

You are done ! Click Verify Settings and you are on the Login page.

phpList settings

Login to your Email Marketing System Control Panel

15) Take a plenty of time to configure some settings

configure phpList settings

Disable phpList news in footer and admin dashboard.

16) Go to > public_html > lists > admin > ui > phplist-ui-bootlist

In the phplist-ui-bootlist folder, open the “footer_minified.inc” file to disable community news feed, comment out the feed codes

You can also edit the footer copyright and credit links from footer_minified.inc

To replace the header logo you have to edit the header_minified.inc file

17) Open public_html > lists > admin > ui > phplist-ui-bootlist > header_minified.inc

To edit the favicon you have to edit the pagetop.php and pagetop_minified.php file

18) Open public_html > lists > admin > ui > phplist-ui-bootlist > [pagetop.php]  [pagetop_minified.php]

It is also necessary to replace your logo and favicon

Replace logo on public_html/lists/images/phplist-touch-icon.png

Replace favicon on public_html/lists/images/phplist.ico

19) To edit title, add the following to config.php file

$installation_name = 'My Site Title';

20) To edit public page header logo, go to Admin Dashboard > Config > Settings > Header of public pages

Or, edit the frontendheader.php file from public_html > lists > admin > ui > phplist-ui-bootlist > frontendheader.php


Now is the time to remove footer credit, after removal I suggest to Donate/Support (at least for 1 month) to phpList for their effort and continuous development.

22) Go to > public_html > lists > admin

In the admin folder, open the “connect.php” file to replace footer credit text/image

Open connect.php file, edit the line numbers 294, 296, 298 and replace with blank powered by

23) In the admin folder, open the “sendemaillib.php” file to replace footer credit text/image

Open sendemaillib.php file, edit the line numbers 213, 265, 267, 269 and replace with blank powered by

24) Login to control panel and continue further administration configuration as much as you need.

25) Specially, install some plugins to get more functionality.

Admin Dashboard > Config > Manage Plugins

Plugins can be found on https://resources.phplist.com/plugins/start

All done ! Enjoy ! Free unlimited email marketing !

– – – – – – – – – – – – – – – – – – – – –


If you get the mail sending process failed and the message “Unable get lock for processing” shows, it means the queue process crashed in Database.

Go to your database table “phplist_sendprocess” and empty the table.