PHP « Как ограничить количество отправленных писем в минуту при рассылке?

У нас есть рассылка по клиентам на 2 000 с гаком человек. Хостер поставил условие - не больше 100 писем в минуту.
Как правильно написать цикл, который бы отправлял по 100 писем в минуту?

1 ответов


Воспользоваться очередями и cron'ом.


Здравствуйте.

Если у вас нет времени, желания или знаний заморачиваться с cron и очередями, то вас вполне может спасти введение счетчика отправленных писем в программе. Увеличивайте его на каждой итерации цикла, а в конце каждой итерации делайте проверку - если этот счетчик равен 100, то делайте sleep(60) - это позволит скрипту заснуть на 60 секунд, что даст Вам гарантированную задержку в работе.


for($i = 0; $i < $emails_count; $i++){
      //здесь какие-то действия по отсылке письма
      if($i % 100 == 0){
          sleep(60);
      }
}