How to throttle outgoing email with PHPList

Boundless Technologies's email policy states that shared and reseller customers should only sending out a maximum of 500 emails per hour. You can view this email policy at the following URL. http://www.boundlesstech.net/mailpolicy.html

This article contains specific instructions on how you can tweak the mailing list program, PHPList, to abide by the HostGator mailing list policy and send under 500 emails per hour. PHPList is available for automatic install through Fantastico, which is located in your cPanel.

How to throttle PHPList:

  1. The first step is to locate the configuration file for your phplist installation. If you have installed the script on your domain in a location such as http://www.domain.com/list/, then the physical path will be:
  2. /home/username/public_html/list/config/config.php
  3. In FTP you could see:
  4. /public_html/list/config/config.php
  5. Download this file to your local PC or edit the file with your file manager in cPanel. If you download this file to your PC, you should use a program such as notepad or wordpad.
  6. Locate the section of code in this file called "batch processing".
  7. Just below "batch processing", you will see some code as in the following example:

Code:
# 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);

# to avoid overloading the server that sends your email, you can add a little delay
# between messages that will spread the load of sending
# you will need to find a good value for your own server
# value is in seconds (or you can play with the autothrottle below)
define('MAILQUEUE_THROTTLE',0);

These are the default settings. We will be replacing those to keep the mails under 500/hour.

Here is the code I suggest:

Code:
# 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",480);

# define the length of one batch processing period, in seconds (3600 is an hour)
define("MAILQUEUE_BATCH_PERIOD",3600);

# to avoid overloading the server that sends your email, you can add a little delay
# between messages that will spread the load of sending
# you will need to find a good value for your own server
# value is in seconds (or you can play with the autothrottle below)
define('MAILQUEUE_THROTTLE',7);

These settings tell PHPList to send 480 mails per hour. The remaining 20 emails per domain can be used for normal mailing operations if needed.

5. Save the file and, if downloaded, FTP it back to it's original location. Please, remember to take a backup of the original file just in case you mess up.

Now you should be able to send mails without any bounces and not overloading the mailserver.