Ошибка Phpmailer: не удалось авторизоваться - PullRequest
0 голосов
/ 04 июня 2018

Я знаю, что есть много похожих вопросов, я прочитал их все, попробовал все в комментариях.Все еще не работает.

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

Вот результат:

"2018-06-03 21:03:33 СЕРВЕР -> КЛИЕНТ: 2018-06-03 21:03:33 SMTP УВЕДОМЛЕНИЕ: EOF перехвачен при проверке подключения. Ошибка SMTP: не удалось проверить подлинность. Ошибка SMTP: не удалось проверить подлинность. Сообщение не было отправлено.Ошибка почтовой программы: ошибка SMTP: не удалось аутентифицироваться.> "

И это мой код send.php:

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

require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';
require 'PHPMailer/src/Exception.php';
require 'vendor/autoload.php';

if(isset($_REQUEST['send']))
{
    $name= $_REQUEST['name'];
    $tel= $_REQUEST['tel'];
    $email= $_REQUEST['email'];
    $preference= $_REQUEST['preference'];
    $area= $_REQUEST['area'];
    $message= $_REQUEST['message'];

$mail = new PHPMailer(true);                              
try {                                                     
    $mail->SMTPDebug = 3;                                 
    $mail->isSMTP();                                      
    $mail->Host = 'smtp.gmail.com';                      
    $mail->SMTPAuth = true;                               
    $mail->Username = 'mygmailaccount@gmail.com';           
    $mail->Password = 'thepassword';                  
    $mail->SMTPSecure = 'TSL';                         
    $mail->Port = 587;     
    $mail->CharSet= 'UTF-8';

    // Port 465 for SSL auth. Also tried 587 for authenticated TLS

    $mail->setFrom($email, $name);
    $mail->addAddress('mygmail@gmail.com', 'Myname');     

    $mail->isHTML(true);          
    $mail->Subject = "Contact from ".$name;
    $mail->Body = "Name:". $name. ". </br> Tel:". $tel. ". </br> Email:". $email. ". </br> Preference:". $preference. ". </br> Area:". $area. ". </br> Message:". $message. ". </br> ";

    $mail->AltBody = "Name:". $name. ". ::: Tel:". $tel. ". ::: Email:". $email. ". ::: Preference:". $preference. ". ::: Area:". $area. ". ::: Message:". $message. ". ::: ";

    $mail->send();
    $_SESSION["success"] = "Thanks for the message";

    }
catch (Exception $e)
    {
    echo 'Message hasnt been sent. Mailer Error: ', $mail->ErrorInfo;
    }

}

Редактировать: я пробовал то, что сказали Абдулла и Гласс, деактивировал двухэтапную проверку и изменил на tsl с портом 587 и отладкой 3 и получил эти выходные данные:

2018-06-03 22:03:55 Соединение: открытие к smtp.gmail.com:587, timeout = 300, options = array () 2018-06-03 22:03:55 Подключение: открыто 2018-06-03 22:03:55 SERVER -> КЛИЕНТ: 220 smtp.gmail.com ESMTP u74-v6sm3867212qku.55 - gsmtp 2018-06-03 22:03:55 КЛИЕНТ -> СЕРВЕР: EHLO localhost 2018-06-03 22:03:55 СЕРВЕР -> КЛИЕНТ: 250-smtp.gmail.com к вашим услугам,[190.2.100.71] 250-РАЗМЕР 35882577250-8BITMIME250-STARTTLS250-ENHANCEDSTATUSCODES250-PIPELINING250 SMTPUTF8 2018-06-03 22:03:55 КЛИЕНТ -> СЕРВЕР: STARTTLS 2018-06-03 22:03:56 СЕРВЕР -> CLI2.0.0 Готов к запуску TLS 2018-06-03 22:03:56 Ошибка подключения.Ошибка № 2: stream_socket_enable_crypto (): операция SSL завершилась неудачно с кодом 1. Сообщения об ошибках OpenSSL: ошибка: 14090086: процедуры SSL: ssl3_get_server_certificate: сбой проверки сертификата [H: \ xampp \ htdocs \ mati \ PHPMailer \ src \ SMTP.php строка 406] Ошибка SMTP: не удалось подключиться к узлу SMTP.2018-06-03 22:03:56 КЛИЕНТ -> СЕРВЕР: ВЫЙТИ 2018-06-03 22:03:56 СЕРВЕР -> КЛИЕНТ: 2018-06-03 22:03:56 ОШИБКА SMTP: Сбой команды QUIT: 2018-06-03 22:03:56 Соединение: закрыто SMTP Ошибка: не удалось подключиться к узлу SMTP.Эль менсае но ха сидо энвиадо.Ошибка почтовой программы: ошибка SMTP: не удалось подключиться к узлу SMTP.

Edit2: решено, я загрузил на временный сервер, который использует аутентификацию tsl, и работал отлично.Я могу поблагодарить вас достаточно @ abdulla-nilam и @ mr-glass за ваш вклад.В конце концов, сообщение отправлено, спасибо еще раз.Сначала он не работал с моего локального хоста, но на временном сервере работает просто отлично.

1 Ответ

0 голосов
/ 04 июня 2018

Я думаю, вы должны попробовать это:

$mail = new \PHPMailer(true); 
$mail->CharSet = 'UTF-8'; $mail->isHTML(); 
$mail->Host = ...//my config 
$mail->Port = ...//my port $mail->isSMTP(); 
if (version_compare(PHP_VERSION, '5.6.0') >= 0){ 
$mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true, ), );
 }
...