Yii::$app->mailers->sendMultiple($messages) в цикле в паре со sleep() творит чудеса

foreach ($messages as $message){
    Yii::$app->mailers->send($message);
    AppHelper::addJson($mailing, 'received_emails', $to);
}

работает нормально, отправляет в цикле письма и делает пометки об этом в базе. Но на хостинге есть одно из ограничений: не отправлять более 60 писем в минуту. Для этого я добавляю sleep(1.1)

foreach ($messages as $message){
    Yii::$app->mailers->send($message);
    AppHelper::addJson($mailing, 'received_emails', $to);
    sleep(1.1);
}

и происходит дублирование отправки письма, т.е. на один и тот же адрес отправляется по 2 письма. Вопрос: как sleep() умудряется это сделать? Возможно есть нормальный способ задать нужную задержку между письмами? В идеале через как-то типа

->addHeader('задержка', '1')
Yii::$app->mailer->sendMultiple($messages);

Ответы (0 шт):