Controlling the amount of email your Mautic instance sends every minute, every hour or every day is a key component of making sure your Domain/IP Reputation and Deliverability stays healthy. In this article, I want to show you how you can fine-tune your settings in order to throttle the number of emails your instance can send and reach the best performance your Email Server can deliver without upsetting ISPs and impacting negatively the relationship of your emails with your customer’s inbox.
Queuing your Emails
Mautic can send emails in two ways: Instantaneously and by a scheduled time. In order to throttle our sending times, we need to ask Mautic to respect the time we asked the instance to start sending emails. To do so, we first need to head over to our Configuration panel in the Email settings section.
In “How should email be handled?“, choose the option “Queue“.
There are two ways of controlling the number of emails you send per minute and per hour of Mautic. Using both at the same time allows you to exercise a more granular control over your sending schedule.
The first one is to set the number of emails that should be processed every time your instance triggers a call to send emails. To do that, there is a field in the Email Settings of your Configuration panel that is called “Message limit for queue processing“. This is how many emails that are pending will be processed the next time the cron job tasked with sending emails will get triggered.
The second way may look clear by now but we can also choose how many times in an hour or even a day the cron job in charge of sending emails gets triggered every day.
By triggering the cron job four times an hour and only allowing our instance to process 10 emails every time the cron job is triggered, that effectively means that we are throttling our Mautic instance to only send 10 times 4 emails an hour, meaning 40 emails/hour.
By choosing to trigger the cron job every minute and setting one pending email to be processed every time the cron job is triggered, that effectively sums up the email sending rate of our Mautic instance to 60 an hour at a rate of one email per minute.
Adjusting our Cron Job
Now, we need to configure the cron jobs that will look at which of our emails are pending and waiting to be sent and send them to our ESP.
The two cron jobs we are interested in here are “mautic:emails:send” and “mautic:broadcasts:send“. Simply add them to your list of cron jobs.
There is a splendid website called Crontab guru (https://crontab.guru/) that is self-characterized as a “quick and simple editor for cron schedule expressions”. With this tool, we are able to understand how cron jobs works and choose exactly when our mautic:email:send will trigger itself.
For instance, if I want to trigger the processing of the emails to send every 5 minutes, the tool suggests me to write this in my cron job:
5 * * * *
So that’s how my cron job would look like if I wanted to only trigger the processing of emails every five minutes:
Based on this new piece of knowledge, we can now add all of the parts together to control how many emails we want to send with Mautic per hour.
In my case, I want my whole instance to send a maximum of 1200 emails an hour.
I’m okay with firing my emails every two minutes so I adjust my cron jobs accordingly like so:
Now, I have to divide my desired number of emails to send by the amount of time my corn job will trigger per hour. So 1200/30 = 40.
I can now head on to the Email Settings of my Mautic instance and input the number 40.
And just like that, I am making sure my Mautic instance only sends 1200 emails every hour.
We’ve all heard sad stories about clients or companies destroying their reputation because of bad practices. Sending too many emails at once is definitely one of these things to avoid.
There is a lot of documentation around about how many emails one should send per IP address, per receiving domain, per ISP, etc. Make your research and adjust your sending rate accordingly.
If you have any other questions about this topic, feel free to leave a comment down below or contact me by mail.
I hope this article has been helpful 🙂
See you soon. 👋🏽
Just what I was looking for 🙂
My messages cron Job is set at five minutes (*/5) Im still at a very early stage of warming up .. So Im looking at ~300 emails aday. The queue setup is 2 emails. So thats: 1 x ( 60/5 ) x ( 24 Hours aday) =1X12X24= 288 aday … correct ?
Is this information also correct for Amazon SES?
Thanks a lot for sharing this tutorial on how to limit emails broadcasts in Mautic.
Wow. You are superb. Correct calculation.
My emails were going very slow. I see nobody is able to answer in this way in Mautic community. Wonderful reverse calculation for sending fast and controlled emails
Happy to help! Thank you for your comment!
Hi Yannis, highly appreciate your explanation. Please also include TIME LIMIT FOR QUEUE PROCESSING in the article. How it affects email sending. Does it distribute/throttle the batch of emails between the cron jobs?
Please throw some light on this.
Won’t this affect all campaigns? How to apply this only for one campaign