возвращение fwrite (ресурс временно недоступен) - PullRequest
1 голос
/ 14 апреля 2020

У меня есть простой php скрипт, который отправляет электронные письма с использованием PMTA

set_time_limit(0);

if ($socket = fsockopen("_IP_",2025,$errno, $errstr, 15)) {

    fwrite($socket, "EHLO $ehlo\r\n");

    foreach ($emails as $key => $email) {   

        fwrite($socket, "MAIL FROM: $from\r\n");

        fwrite($socket, "RCPT TO: $email\r\n");

        fwrite($socket, "DATA\r\n");

        fwrite($socket, implode("\r\n", $headers)."\r\n\r\n".$body."\r\n");

        fwrite($socket, ".\r\n");

    }

    fwrite($socket, "QUIT\r\n");

    fclose($socket);

}

после того, как около 3000 писем электронной почты вернутся с предупреждением. Ресурс временно недоступен

PHP Notice:  fwrite(): send of 187 bytes failed with errno=11 Resource temporarily unavailable in /var/www/html/app/send.php on line 340

Любые идеи, где проблема? Спасибо!

1 Ответ

0 голосов
/ 14 апреля 2020

errno = 11 - ошибка EAGAIN отчета сокета, что в неблокированных каналах TCP-буфер полностью. Обработчик ошибок должен перехватить ошибку EAGAIN (errno = 11), поэтому любая отладка поможет вам. См. PHP - ошибка при использовании socket_recv

...