How to throttle outgoing email with PHPList

HostGator'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.hostgator.com/mailpolicy.shtml.

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 QuickInstall, 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:

    /home/username/public_html/list/config/config.php

    In FTP you could see:

    /public_html/list/config/config.php

  2. 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.
  3. Locate the section of code in this file called "batch processing".
  4. 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",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',8);

    These settings allows PHPList to throttle 450 mails per hour, exactly as our TOS suggests. The remaining 50 emails per domain remain available for normal mailing operations.

  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.