Only things aren't that simple. phpList is a monster open source project with many versions and revisions and the documentation is, well, open source quality. The recent version 3.0 brought many drastic changes and one can get lost browsing the forums that deal with issues in the older versions. After installing I spent a few days scratching my head trying to figure out cron jobs.
Out of the box phpList is set to work from the internet browser. It runs on the server but it requires an active connection with the desktop browser or it stops working (!). It doesn't make any sense and you can definitely not leave the laptop running for days till the email delivery is complete. The workaround is to process the queue using a cron job, that is using the linux task scheduler on the server. But do you know what on earth is the difference between php-cli and php-cgi? I didn't so I got stuck.
If your website is on shared hosting most probably you only have php-cgi, and that's harder to work with. A good starting point is this forum post that explains how to find out what kind of PHP you have available and what command to use to manually process the phplist queue. Only the information is partial and wrong for the latest version, and it doesn't tell you about the biggest issue: you must schedule the cron job to run repeatedly on the server till all the mails are sent. What you need to do for PHP-cgi is to follow these steps below.
You must edit your CONFIG.PHP configuration file so that the delivery rate matches the cron scheduled rate, e.g.
define("MAILQUEUE_BATCH_SIZE",50); define("MAILQUEUE_BATCH_PERIOD",180); # 180 seconds=3 min define('MAILQUEUE_THROTTLE',1);50 emails can be sent in one minute; this runs every 5 minutes so with a simple calculation our rate is (60/5)*50=600 emails/hour.
That's it. Now you can close all the putty and browser windows and go do something useful with your life while the phplist script heralds your news in autopilot mode. If you want to check the progress of the mailing just "login" with your browser to check the active campaign:
When it is all over don't forget to remove the cron job using crontab -r command from the putty terminal.