Cron job mystery


My Setup

Setup is running Magento 2.2.5 on Linux, PHP 7.2, hosted instance.

What I’m trying to do
I have schedule Cron jobs to run once a week. I scheduled a newsletter to be sent to my 100+ customers. The cron job sent the newsletter to only 20 customers. I then had to schedule the cron job to run every 5 minutes to send newsletter to next 20 customers. The job ran several times at 5 minutes interval until my newsletter subscribers list was exhausted. Then I rescheduled the cron job to run once a week.

Isn’t a single cron job supposed to send the newsletter to all subscribers? Why did I have to play with Cron job frequency? There seems to a be flag/setting somewhere that defaults to sends newsletter to only 20 customers at a time.
Has anyone else run into this issue? Would love to hear from this forum.


Is these Newsletters being sent via Magento Core Code or are you using a 3rd party module?

My guess is that Magento sends emails in batches. It’s quite common for any service (even MailChimp) to do this because it avoids overloading any networks when the Newsletter emails fall into the thousands or tens-of-thousands…

I’m not sure of any settings you can use to change this as I’ve never used this feature in Magento (because I think it sucks compared to MailChimp and other 3rd party services).

Your short-term solution might be setting your cronjob to run in 5 minutes increments every Sunday (ref):

/5 * * * 0

But you might want to test this.

Long-term solution would be to build a module to override this function. But I wouldn’t know where to start with that one. Either that or utilise a 3rd party Newsletter service.

Thank you for quick responses. I am using inbuilt Magento Newsletter services to send newsletter. I will check on building my custom module.

thank you, and look forward to your new content.

1 Like