проблема с PHPMAILER Не удалось подключиться к узлу SMTP - PullRequest
0 голосов
/ 30 апреля 2019

У меня проблема с PHPMAILER, он хорошо работает на локальном хосте, но на сервере выдает ошибку

PHPMAILER код

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

function sendMail($driver, $driverUser){

    // Load Composer's autoloader
    require 'vendor/autoload.php';

    // Instantiation and passing `true` enables exceptions
    $mail = new PHPMailer(true);

    try {
        //Server settings
        $mail->SMTPDebug = 2;                                       // Enable verbose debug output
        $mail->isSMTP();                                            // Set mailer to use SMTP
        $mail->Host       = 'smtp.gmail.com';                       // Specify main and backup SMTP servers
        $mail->SMTPAuth   = true;                                   // Enable SMTP authentication
        $mail->Username   = 'wastaapplication@gmail.com';                // SMTP username
        $mail->Password   = '*******';                      // SMTP password
        $mail->SMTPSecure = 'tls';                                  // Enable TLS encryption, `ssl` also accepted
        $mail->Port       = 587;                                    // TCP port to connect to

        //Recipients
        $mail->setFrom('wastaapplication@gmail.com', 'Wasta Driver');
        $mail->addAddress($driver, $driverUser);     // Add a recipient

        // Content
        $mail->isHTML(true);                                  // Set email format to HTML
        $mail->Subject = 'New Order';
        $mail->Body    = ' مرحبا ' . '<strong>' . $driverUser . '</strong>' . '  لديك طلبيه جديده برجاء مراجعه برنامج الطيارين ';
        $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

        $mail->send();
        echo 'Message has been sent';
    } catch (Exception $e) {
        echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
    }

}

Ошибка

2019-04-30 05:14:51 SERVER -> CLIENT: 220-server.issgroups.org ESMTP Exim 4.91 #1 Tue, 30 Apr 2019 07:14:51 +0200 220-We do not authorize the use of this system to transport unsolicited, 220 and/or bulk e-mail.
2019-04-30 05:14:51 CLIENT -> SERVER: EHLO wastetkheer.com
2019-04-30 05:14:51 SERVER -> CLIENT: 250-server.issgroups.org Hello wastetkheer.com [138.201.107.252]250-SIZE 52428800250-8BITMIME250-PIPELINING250-AUTH PLAIN LOGIN250-STARTTLS250 HELP
2019-04-30 05:14:51 CLIENT -> SERVER: STARTTLS
2019-04-30 05:14:51 SERVER -> CLIENT: 220 TLS go ahead
SMTP Error: Could not connect to SMTP host.
2019-04-30 05:14:51 CLIENT -> SERVER: QUIT
2019-04-30 05:14:51 
2019-04-30 05:14:51 
SMTP Error: Could not connect to SMTP host.
Message could not be sent. Mailer Error: SMTP Error: Could not connect to SMTP host.

я пытаюсь изменить SMTPDebug на 1 & // $ mail-> isSMTP ();

это хорошо работает на локальном хосте, а не на сервере Я предполагаю, что проблема с аутентификацией SMTP, но я не мог найти проблему.

Ответы [ 2 ]

0 голосов
/ 30 апреля 2019

Пожалуйста, выполните поиск перед публикацией, поскольку на него уже много раз отвечали.

Сбой сразу после STARTTLS, что указывает на ошибку TLS.Это очень распространено в gmail, потому что их корневые сертификаты ЦС изменились около года назад на те, которых нет во многих старых ОС.Он работает для вас на локальном хосте, потому что ваша локальная ОС не имеет устаревших сертификатов CA.

Прочитайте Руководство по устранению неполадок , которое точно скажет вам, как с этим справиться.

ЭтоЭто также может быть связано с тем, что ваш Интернет-провайдер перенаправляет SMTP-трафик на свой собственный почтовый сервер, что приводит к несоответствию имени сертификата - в руководстве приведены способы диагностики точной проблемы.

0 голосов
/ 30 апреля 2019

Попробуйте заменить $ mail-> SMTPSecure = 'tls'; в $ mail-> SMTPSecure = 'ssl';

// Поскольку ваш сервер завершил работу после этой ошибки: 2019-04-30 05:14:51 СЕРВЕР -> КЛИЕНТ: 220 TLS Ошибка SMTP: не удалось подключиться к узлу SMTP.

Так что попробуйте

...