PHPMailer SMTP-соединение не удалось на сервере - PullRequest
0 голосов
/ 28 мая 2018

Я использую класс PHPMailer для отправки электронного письма с моего сайта, локально это работает хорошо, но на моем онлайн-сервере я получил ошибку:

2018-05-28 12:03:40 Connection: opening to ssl://smtp.gmail.com:465, timeout=300, options=array()
2018-05-28 12:03:40 Connection failed. Error #2: stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages:error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed [/home/beesystems/public_html/specs/vendor/phpmailer/phpmailer/src/SMTP.php line 325]
2018-05-28 12:03:40 Connection failed. Error #2: stream_socket_client(): Failed to enable crypto [/home/beesystems/public_html/specs/vendor/phpmailer/phpmailer/src/SMTP.php line 325]
2018-05-28 12:03:40 Connection failed. Error #2: stream_socket_client(): unable to connect to ssl://smtp.gmail.com:465 (Unknown error) [/home/beesystems/public_html/specs/vendor/phpmailer/phpmailer/src/SMTP.php line 325]
2018-05-28 12:03:40 SMTP ERROR: Failed to connect to server: (0)
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

код:

            $mail = new PHPMailer();
            $mail->IsSMTP();
            $mail->SMTPAuth = true;
            $mail->SMTPSecure = 'ssl';
            $mail->Host = "smtp.gmail.com";
            $mail->Port = 465;

           $mail->Username = \Yii::$app->params['mailer-account'];
           $mail->Password = \Yii::$app->params['mailer-password'];

1 Ответ

0 голосов
/ 28 мая 2018

Это важная часть:

Подпрограммы SSL: ssl3_get_server_certificate: сбой проверки сертификата

Об этом подробно говорится в руководстве по устранению неполадок, на которое ссылается сообщение об ошибке, иответили много раз здесь.Переключение SMTPSecure на tls на порту 587 не поможет.Скорее всего, ваш сервер работает на старой версии PHP или имеет устаревший пакет сертификатов CA.

...