Mass mailing announcements
When sending out mass emails, there are a couple of things you should take into account, especially when sending announcements to a considerable number of customers.
If you're using the SMTP option in ClientExec, you'll definitely have to enable the Bulk Mailer plugin. Otherwise Clientexecwill attempt to connect to the mail server for each message to be sent, which will cause a system time out, and only a handful of messages will be sent. This might also happen when using the Sendmail method, under some Sendmail configurations.
On the other hand, when the Bulk Mailer service triggers, the mail server has to be appropriately configured to avoid it to overload the server.
Exim example
For the Exim mail server for example, you can make sure you have these statements in the configuration file:
queue_only_load = 3
deliver_queue_load_max = 3
This means that whenever the system load raises above 3, messages won't be delivered anymore but they'll be queued instead, and the queue won't be triggered until the load comes below that threshold. Notice that although you will prevent a system overload, the messages will be delivered little by little.
Monitoring the mail server
After the Bulk Mailer service is triggered you can monitor what exim is doing with the exiwhat command. That'll tell you which processes is exim running, and what are they doing. You can see how many e-mails there still are in queue with exim -bpc
And then there is of course the ps and uptime commands, that you can use to find out how much resources are those processes consuming and what is the system's overal load, respectively.
If you're using the SMTP option in ClientExec, you'll definitely have to enable the Bulk Mailer plugin. Otherwise Clientexecwill attempt to connect to the mail server for each message to be sent, which will cause a system time out, and only a handful of messages will be sent. This might also happen when using the Sendmail method, under some Sendmail configurations.
On the other hand, when the Bulk Mailer service triggers, the mail server has to be appropriately configured to avoid it to overload the server.
Exim example
For the Exim mail server for example, you can make sure you have these statements in the configuration file:
queue_only_load = 3
deliver_queue_load_max = 3
This means that whenever the system load raises above 3, messages won't be delivered anymore but they'll be queued instead, and the queue won't be triggered until the load comes below that threshold. Notice that although you will prevent a system overload, the messages will be delivered little by little.
Monitoring the mail server
After the Bulk Mailer service is triggered you can monitor what exim is doing with the exiwhat command. That'll tell you which processes is exim running, and what are they doing. You can see how many e-mails there still are in queue with exim -bpc
And then there is of course the ps and uptime commands, that you can use to find out how much resources are those processes consuming and what is the system's overal load, respectively.
Updated on: 23/02/2023
Thank you!