SMTP показывает ошибку после отправки нескольких писем пользователю с локального хоста - PullRequest
0 голосов
/ 04 июля 2018

Я работаю с phpmailer и smtp для отправки почты с локального хоста на gmail. Во-первых, проблема в том, что я отправляю почту, и она работала нормально, но теперь не удалось установить соединение SMTP. Вот мой код Я новичок в этом, пожалуйста, помогите мне.

$mail = new PHPMailer\PHPMailer\PHPMailer();

    $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 = 'smag.ghaznavi1@gmail.com';          // SMTP username
    $mail->Password = 'mypassword'; // SMTP password
    $mail->SMTPSecure = 'tls';                  // Enable TLS encryption, `ssl` also accepted
    $mail->Port = 587;                          // TCP port to connect to
    $mail->SMTPDebug=2;
    $mail->setFrom('info@example.com', 'PMS');
    //$mail->addReplyTo('info@example.com', 'CodexWorld');
    $mail->addAddress('smag.ghaznavi1@gmail.com');   // Add a recipient
    //$mail->addCC('cc@example.com');
    //$mail->addBCC('bcc@example.com');

    $mail->isHTML(true);  // Set email format to HTML

    $bodyContent = '<h1>Your password reset link</h1>';
    $bodyContent .= "Dear user,\n\nIf this e-mail does not apply to you please ignore it. It appears that you have requested a password reset at our website www.yoursitehere.com\n\nTo reset your password, please click the link below. If you cannot click it, please paste it into your web browser's address bar.\n\n" . $pwrurl . "\n\nThanks,\nThe Administration";

    $mail->Subject = 'Email from Project Management System Admin';
    $mail->Body    = $bodyContent;

    if(!$mail->send()) {
        echo 'Message could not be sent.';
        echo 'Mailer Error: ' . $mail->ErrorInfo;
    } else {
        echo 'Message has been sent';
    }



smag.ghaznavi1@gmail.com2018-07-04 16:43:58 SERVER -> CLIENT: 220 
smtp.gmail.com ESMTP o4-v6sm5724500wmo.20 - gsmtp
2018-07-04 16:43:58 CLIENT -> SERVER: EHLO localhost
2018-07-04 16:43:58 SERVER -> CLIENT: 250-smtp.gmail.com at your service, 
[39.54.130.23]250-SIZE 35882577250-8BITMIME250-STARTTLS250- 
ENHANCEDSTATUSCODES250-PIPELINING250 SMTPUTF8
2018-07-04 16:43:58 CLIENT -> SERVER: STARTTLS
2018-07-04 16:43:58 SERVER -> CLIENT: 220 2.0.0 Ready to start TLS
SMTP Error: Could not connect to SMTP host.
2018-07-04 16:43:59 CLIENT -> SERVER: QUIT
2018-07-04 16:43:59 SERVER -> CLIENT: 
2018-07-04 16:43:59 SMTP ERROR: QUIT command failed: 
SMTP connect() failed. 
https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
Message could not be sent.Mailer Error: SMTP connect() failed. 
https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

Ответы [ 2 ]

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

Не удается запустить TLS, что обычно свидетельствует о том, что ваши сертификаты CA устарели, особенно при использовании Gmail. Это не имеет ничего общего с настройкой «менее безопасных приложений» или с проблемой капчи - хотя вы можете столкнуться с ними позже.

Перейдите по ссылке на руководство по устранению неполадок в сообщении об ошибке, которое описывает эту точную ошибку и говорит, как ее исправить (обновив сертификаты CA - , а не , отключив сертификат проверка!). Это странно, как если бы эта ссылка существовала исключительно для того, чтобы помочь вам решить подобные проблемы, не задавая вопросов и не ожидая ответов ...

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

Проверьте, включен ли "Разрешить менее безопасные приложения" в вашем аккаунте Google - ссылка .

Также попробуйте войти в свой аккаунт Google и перейти на страницу "displayCaptcha" - ссылка

И вы должны предоставить свой код, чтобы понять проблему

...