Mail queue processing on schedule


I have a pretty complicated setup of phplist (from the point of view of campaigns schedule). I need those to be send during the day in particular order. To be exact i do have 10 campaigns. 5 of them need to send 6000 mails each during the day (campaign names a, b, c, d, e) - lets call this campaign group A. 2 of them 1000 mails each of them (campaigns f, g) - campaign group B. 2 of them 4000 mails each (h, i) - campaign group C. 1 campaign 2000 a day (campaign j) - D. I am using cron that is running every minute to process queue (8:00 - 19:00). Message threshold is 0.9 sec. (4000 mails/hour). All mails should be send during this period.

Schedule should look like this:

8:00 - 8:30 send out all campaign group B (f, g each by 1000 mails)
8:30 - 9:00 send out all campaign group D (j 2000 mails)
9:00 - 12:00 send out 12000 mails from campaign group A (a, b, c, d, e each by 2400 mails)
12:00 - 13:00 send out 4000 mails from campaign group C (h, i each by 2000 mails)
13:00 - 15:00 send 8000 mails from group A (a, b, c, d, e each by 1600 mails)
15:00 - 16:00 send 4000 mails from group C (h, i each by 2000 mails)
16:00 - 18:30 send 10000 remaining mails from group A (a, b, c, d, e each by 2000 mails)

Campaign should run on the same schedule every working day (Monday - Friday). Overall there are around 200k subscribers through all lists so it should be covered in one week following this schedule. Can this be achieved (or something very similar)? Thank you in advance!

Hello @Vytautasber,

phpList allows you setup a start and end time for processing a campaign. You didn’t mention if this was all a single campaign, or if each batch is a different campaign. Let’s assume it is the same message to being sent to all batches. (Each batch is defined by the time it will go out, ie. 800-830 is batch 1, 830-900 is batch2, etc.)

For a single day, you could setup 7 different batches, each batch set to send a unique message to your various list groups, with a start and stop times as you listed above. Then your cron job will send as you listed, for one day.

If you want this pattern to repeat for multiple days, you’ll need to change the start and stop times for each batch, every day, either through the web interface, or through changing the message settings in the phplist_messagedata table. For instance, you could setup a cron job to run at 12:01am that changed the start and end time to the current date,

It’s fancy footwork directly in the database, but it is possible if you are comfortable with sql commands.

Hello @danwaterloo

Thank you for your reply. These are 10 different campaigns just they are grouped for particular time. Means if it is time for campaign group B then campaigns f and g runs consequently by equal number of subscribers.