Details
Description
A lot of email servers have limitations on the amount of emails that can be processed per certain period of time. Mostly the limitations are set to use format "emails/second". With its current functionality, CiviCRM can easily violate such limits when a large number of emails are sent by the application.
We have discussed this issue in the following thread:
http://forum.civicrm.org/index.php?topic=23177.0
Below I am copying the patch suggested by my colleague Val:
File: CRM/Mailing/Config.php
-----------
/**
- How long (in micro seconds) should we wait in between each mail delivery? Setting this to 0 disables it.
* - @var int
*/
public $mailThrottleTime = 120000;
-----------
File: CRM/Admin/Form/Setting/Mail.php
-----------
$this->addElement('text','mailThrottleTime', ts('Mailer Throttle Time'));
-----------
File: templates/CRM/Admin/Form/Setting/Mail.tpl
-----------
<tr class="crm-mail-form-block-mailThrottleTime">
<td class="label">{$form.mailThrottleTime.label}</td><td>{$form.mailThrottleTime.html} <br />
<span class="description">
The time to (u)sleep in between each e-mail in micro seconds. Setting this above 0 allows you to control the rate at which e-mail messages are sent to the mail server, avoiding filling up the mail queue very quickly. Set to 0 to disable.
{/ts}</span></td>
</tr>
-----------
File: CRM/Mailing/BAO/Job.php
-----------
// If we have enabled the Throttle option, this is the time to enforce it.
$config = CRM_Core_Config::singleton();
if($config->mailThrottleTime > 0)
-----------
We hope that you will take into consideration this patch and our concern that the current functionality of the application can cause a lot of issues to CiviCRM users.
We are looking forward to your reply.
Regards,
Dave
Siteground Technical Support Team
Your patch is highly appreciated. Thanx for spending the time to do so.