Once PHPList is configured correctly, it is a fantastic tool for email campaigns. Below are some notes from my own experience in setting up a 19,000+ name, email campaign.
Setting the batch size and send rate to prevent server errors.
Most servers have a very low email per hour (or per day) limit. My server, Hostdime, has a 350/hr max, GoDaddy has a 500/day max (on a shared hosting account). You should not use the max limit because this will prevent any other emails from being sent during that time-frame.
The default PHPList installation doesn’t limit the batch size or send rate. You must make these changes prior to sending a message or you will crash your server and have to contact support to stop the process (and you may lose any email ability for that time period).
After you’ve gone through the installation and setup process, you will need to modify the config.php file. Look for the following and max changes – carefully!
# define the amount of emails you want to send per period. If 0, batch processing
# is disabled and messages are sent out as fast as possible
define(“MAILQUEUE_BATCH_SIZE”,0);
# define the length of one batch processing period, in seconds (3600 is an hour)
define(“MAILQUEUE_BATCH_PERIOD”,3600);
I found that sending a smaller batch size more often worked best for not putting lag on the server (it WILL affect your website if it is hosted on the same account). I set my batch size to 40 and the send rate to 60, thus sending 40 emails every 10 minutes, totalling 240/hr. This left 110 emails per hour for other purposes (auto responses, sign-up notifications, normal emails, etc.).
Here is a sample of the update I received in my email after I started the message process queue:
[Mon 8 Jun 2009 11:10] [75.33.200.235] Started
[Mon 8 Jun 2009 11:10] [75.33.200.235] Sending in batches of 40 emails
[Mon 8 Jun 2009 11:10] [75.33.200.235] Sent in last run: 40
[Mon 8 Jun 2009 11:10] [75.33.200.235] Skipped in last run: 0
[Mon 8 Jun 2009 11:10] [75.33.200.235] Processing has started, 1 message(s)
to process.
[Mon 8 Jun 2009 11:10] [75.33.200.235] Please leave this window open. You
have batch processing enabled, so it will reload several times to send the
messages. Reports will be sent by email to yourname@yourdomain.com
[Mon 8 Jun 2009 11:10] [75.33.200.235] Processing message 8
[Mon 8 Jun 2009 11:10] [75.33.200.235] Looking for users
[Mon 8 Jun 2009 11:10] [75.33.200.235] Found them: 12080 to process
[Mon 8 Jun 2009 11:10] [75.33.200.235] batch limit reached: 40 (40)
[Mon 8 Jun 2009 11:10] [75.33.200.235] Script stage: 5
[Mon 8 Jun 2009 11:10] [75.33.200.235] 40 messages sent in 27.91 seconds
(5159 msgs/hr)
These settings have allowed my server to continue sending emails, uninterrupted, until all emails were sent.
For more information about setting the send speed or other PHPList help, visit this website: http://docs.phplist.com/PhpListConfigSendRate.

1 Comment
SLK,
Did you happen to mess with the ‘MAILQUEUE_THROTTLE’ setting at all to set delays between the messages? I am thinking about switching over to phplist for a client that sends out about 8,000 emails per list. Sometimes they have to send out several per day and our current system dumps a batch emails every 5 min but requires us to “authorize” them one at a time so they don’t gum up the queue.
thanks for the article