I'm working on a simple text messaging service for my high school's student council and my hosting service only allows 19 PHP mail messages to be sent per minute, so is there a way I can set an interval to only send 15 emails, wait a minute, send another 15, wait, and do so until all the mail is sent? Below is some of my code, all you'll probably need to see is the "foreach" section.
$subject =     ""; 
$message =     "Hey, $first! $messageget";
$header =     'From: Student Council<[email protected]>' . "\r\n" .
               'Reply-To: [email protected]' . "\r\n" . 
              'X-Mailer: PHP/' . phpversion(); 
foreach($to as $value) { 
    $result = mail($value, $subject, $message, $header); 
} 
                Sending 15 Mails in 60 seconds is equivalent to sending one mail every 4 seconds.
So if you have a loop that would send all mails one after another, you decelerate by doing a sleep(4) after every mail is sent.
foreach($to as $value) { 
    $result = mail($value, $subject, $message, $header); 
    sleep(4);
} 
This is way easier than calculating when to send the next batch of 15 mails and then wait another 60 seconds. :)
Additionally, it evens out the usage of CPU and network ressources and does not peak after 60 seconds.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With