Throttling never worked for me with PHPList

I use PHPList for at least a decade. In all these years I have tried to configure PHPList to throttle emails. This never worked. I have tried everything, to send it in batches, to increase message delays, everything. Nothing works. It sends the initial messages or batches and stops working. I have tried to use the terminal script to trigger the sending thru terminal but as expected the script does not work, telling me that I have to be root to run it. But I AM ROOT.

The only way, I suppose, to make it work is to keep the browser window open until it finishes but this is ridiculous because I have 10K emails and I throttle that to send messages over the period of 3 days.

The configuration I have now is this:

define(“MAILQUEUE_BATCH_SIZE”,60);
define(“MAILQUEUE_BATCH_PERIOD”,600);
define(‘MAILQUEUE_THROTTLE’,1);

My PHPList version is the latest one. My PHP version is 5.3.29. I use CentOS 6.5. But that is not a question of versions because I am using PHPList since version 1 over older versions of PHP and Linux and it never worked for throttling.

I have followed all guides, help pages and docs I could find.

Is there any way to make throttling work for PHPList?

Hi,

  1. In which file are your batch settings?

  2. How many messages are you trying to send per minute?

  3. phpList 3.2.x actually requires PHP version 5.4 as a minimum, you probably need to upgrade your server.

  1. what do you mean? what batch settings file is this?

2:
define(“MAILQUEUE_BATCH_SIZE”,60);
define(“MAILQUEUE_BATCH_PERIOD”,600);
define(‘MAILQUEUE_THROTTLE’,1);

meaning 60 messages over 600 seconds = 60 messages in 10 minutes, 6 messages per minute. But this is just one of the settings I have tried. My normal settings is 200 messages per hour.

  1. I can guarantee you this is not a matter of version. I have been using PHPList since version 1 with 10 different versions of PHP and servers and it never worked.

Exactly that, in which file are your batch settings defined? This should be set in lists/config/config.php

and it is. As far as I know this file is where you set the configuration unless there is another one I am not aware.

Hello,
Try with this setting in config.php

define(“MAILQUEUE_BATCH_SIZE”,0);
define(“MAILQUEUE_BATCH_PERIOD”,3600);
define(‘MAILQUEUE_THROTTLE’,3);

After above setting

Make 10k Single List into multiple list ( List 50 ) each list have 200 email id,
List-1 ( 200 Email id )
List-2 ( 200 Email id )
List-3 ( 200 Email id ) …List-50 ( 200 Email id )

At the time of sending campaign Use Scheduling Send and give inteval of each list 1 Hrs.
Each hrs 200 emails send and within 50 hrs all 10k emails send.

These settings do not work in the way that you seem to think.
When batch processing is enabled, MAILQUEUE_BATCH_SIZE > 0, then phplist will send that number of emails and then will stop. It will delay between sending each email for MAILQUEUE_THROTTLE seconds.

If you are using a cron job, which I recommend, then each run of the cron job will trigger the sending of one batch.

If you are sending through the browser, which is sensible only for small number of emails, then phplist uses javascript to re-run the sending process. But in this case phplist sends for only one minute maximum, then reloads, so it is more complex to work out what the batch settings need to be.

Additionally, when phplist starts to send a batch it checks how many emails have been sent within the past MAILQUEUE_BATCH_PERIOD seconds, and reduces the actual batch size accordingly.
If you are sending only using the cron job and not through the browser, which again I recommend, then you can set the batch period to a small number to avoid this reduction in the actual batch size.

To send 200 emails/hour, I suggest a cron job that runs every 6 minutes (10 times each hour) with these batch settings

define("MAILQUEUE_BATCH_SIZE",20);
define("MAILQUEUE_BATCH_PERIOD",5);
define('MAILQUEUE_THROTTLE',1);

or don’t use batch processing and let phplist run until all emails have been sent, with a throttle that spaces the emails within the limit of 200/hour (18 = 3600/200)

define("MAILQUEUE_BATCH_SIZE",0);
define("MAILQUEUE_BATCH_PERIOD",5);
define('MAILQUEUE_THROTTLE',18);

Thanks you very much Mr. Duncanc for giving new setting , i am also using cron job from cpanel as per your guide line, and working fine but is it possible using this setting can i make single list of 5000 email ???

Please open a new topic. The original poster had a specific problem and your suggestion is not related to that.