Ошибка warning: fwrite(): SSL: Broken pipe

288
30 апреля 2017, 00:37

Подскажите, в чём может быть проблема?
В админке есть отдельная страница выбора файла csv или xlsx для импорта новых пользователей. В цикле берётся текущий пользователь, импортируется в бд и идёт отправка ему на почту уведомления с помощью smtp. smtp настроен. Если отправить одному пользователю письмо через эти настройки smtp, то отправка работает!
скрипт примерно такой:

$countUser = 100;
$row = 0;
$data = $users; /*массив с пользователями, полученный с помощью fgetcsv или phpexcel*/;
while ($row < $countUser) {
    $email = $data[0];
    // send mail
    if( isset( $form_data["sends_email"] ) && $form_data["sends_email"] ){
        $body_mail = get_option( "acui_mail_body" );
        $body_mail = str_replace( "**loginurl**", "<a href='" . home_url() . "'>" . home_url() . "</a>", $body_mail );
        $body_mail = str_replace("**password**", $current_pass_nothash, $body_mail);
        $body_mail = str_replace( "**username**", $email, $body_mail );
        if( !get_option('acui_automattic_wordpress_email') ){
            add_filter( 'send_email_change_email', '__return_false' );
            add_filter( 'send_password_change_email', '__return_false' );
        }
        $body_mail = wpautop( $body_mail );
        add_filter( 'wp_mail_content_type', 'cod_set_html_content_type' );
        if( get_option( "acui_settings" ) == "plugin" ){
            add_action( 'phpmailer_init', 'acui_mailer_init' );
            add_filter( 'wp_mail_from', 'acui_mail_from' );
            add_filter( 'wp_mail_from_name', 'acui_mail_from_name' );
            wp_mail( $email, $subject, $body_mail );
            remove_filter( 'wp_mail_from', 'acui_mail_from' );
            remove_filter( 'wp_mail_from_name', 'acui_mail_from_name' );
            remove_action( 'phpmailer_init', 'acui_mailer_init' );
        }
        else{
            $headers = "From: {$from_name}@{$_SERVER['SERVER_NAME']}\r\n";
            $headers .= "Content-type: text/html; charset=utf-8\r\n";
            mail( $email, $subject, $body_mail, $headers );
            //                          wp_mail( $email, $subject, $body_mail );
        }
        remove_filter( 'wp_mail_content_type', 'cod_set_html_content_type' );
        if( !get_option('acui_automattic_wordpress_email') ){
            remove_filter( 'send_email_change_email', '__return_false' );
            remove_filter( 'send_password_change_email', '__return_false' );
        }
    }
    $row++;
}

В результате ошибка:
Warning: fwrite():SSL: Broken pipe in ../site/wp-includes/class-smtp.php on line 929
Подскажите, в чём может быть проблема?

Answer 1

Ошибка broken pipe возникает, когда сервер обрывает соединение. Такое случается, когда он перегружен. Попробуйте дробить отправку на меньшие фрагменты и ставить задержку между фрагментами.

READ ALSO
Нужна помощь phpQuery::each

Нужна помощь phpQuery::each

Не могу понять принцип работы вышеуказанного метода phpQuery::each

345
Переключение между визуальным редактором и текстом

Переключение между визуальным редактором и текстом

Подскажите, при создании записи в стандартном редакторе записей wordpress, если в режиме "текст" прописать <li>tekst</li>, потом переключиться...

223
Как построить динамическое условие в PHP?

Как построить динамическое условие в PHP?

Пытаюсь сделать калькуляторЕсть массив правил, в котором описано какая переменная должна быть <,>,=,!= итд какому то значению, например:

324
yii2 валидация формы

yii2 валидация формы

Есть форма, где динамический формируется поляПроблема в том что не работает валидация полей на клиентской части

595