Не удается отправить электронную почту PHPMailer 6.0 с помощью Oauth Google

0 с Google Oauth, и я получаю эту ошибку

2017-08-04 06:38:42 SERVER -> CLIENT: 220 smtp.gmail.com ESMTP v19sm895098pgc.93 - gsmtp 2017-08-04 06:38:42 CLIENT -> SERVER: EHLO localhost 2017-08-04 06:38:43 SERVER -> CLIENT: 250-smtp.gmail.com at your service, [180.243.143.147]250-SIZE 35882577250-8BITMIME250-STARTTLS250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8 2017-08-04 06:38:43 CLIENT ->; SERVER: STARTTLS 2017-08-04 06:38:43 SERVER -> CLIENT: 220 2.0.0 Ready to start TLS 2017-08-04 06:38:43 CLIENT -> SERVER: EHLO localhost 2017-08-04 06:38:43 SERVER -> CLIENT: 250-smtp.gmail.com at your service, [180.243.143.147]250-SIZE 35882577250-8BITMIME250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8 SMTP Error: Could not authenticate. 2017-08-04 06:38:43 CLIENT -> SERVER: QUIT 2017-08-04 06:38:43 SERVER -> CLIENT: 221 2.0.0 closing connection v19sm895098pgc.93 - gsmtp 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 

Мой скрипт

 <?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require './vendor/autoload.php'; $mail = new PHPMailer; $mail->isSMTP(); $mail->SMTPDebug = 2; $mail->Debugoutput = 'html'; $mail->Host = 'smtp.gmail.com'; $mail->Port = 587; $mail->SMTPSecure = 'tls'; $mail->SMTPAuth = true; $mail->AuthType = 'XOAUTH2'; $mail->oauthUserEmail = "info@modelunitednation.org"; $mail->oauthClientId = "932857915584-eco8v9aejdb2n3mkltgvftf8e5h1eiko.apps.googleusercontent.com"; $mail->oauthClientSecret = "7SqFo7aPYvZ05cHlh5p3kMUD"; $mail->oauthRefreshToken = "1/4KJJ5XMyXqELMAhRXGYjz_I4SfoWfFR9N9RRA2VA2I0"; $mail->addAddress('jakabanasuy2@gmail.com'); // Add a recipient $mail->isHTML(true); // Set email format to HTML $mail->setFrom('from@example.com', 'Mailer'); $mail->Subject = 'Here is the subject'; $mail->Body = 'This is the HTML message body <b>in bold!</b>'; $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; if(!$mail->send()) { echo 'Message could not be sent.'; echo 'Mailer Error: ' . $mail->ErrorInfo; } else { echo 'Message has been sent'; } 

я не знаю, я сделал поиск Google, но я не нашел никакого решения. Прежде чем я спрошу, не могу отправить PHPMailer с помощью Oauth Google

Любое решение для моего дела?

Для XOAUTH2 , если вы используете версию 5.2 , вы создаете неверный класс . 6.0 также работает по-разному.

Вы должны использовать:

$mail = new PHPMailerOAuth;

В этом причина следующей ошибки:

2017-08-04 06:38:43 SERVER -> КЛИЕНТ: 250-smtp.gmail.com к вашим услугам, [180 …… XOAUTH2 …… Ошибка SMTP: не удалось аутентифицироваться.

Ура!

Несколько вещей:

Во-первых, OAuth действительно сложно отлаживать. Я действительно рекомендую вам взглянуть на ветку 6.0 , в которой значительно улучшена поддержка OAuth. Он поставляется с гораздо лучшими примерами, и было бы очень полезно, если бы вы могли его протестировать. Этот второй шаг является ключевым моментом и может решить вашу проблему. Существует незначительная разница в инициации (используйте класс PHPMailerOAuth ), поэтому, пожалуйста, внимательно прочитайте документы.

Во-вторых, ознакомьтесь с этой документацией, возможно, вы следовали за ней, но посмотрите, нет ли у вас какого-либо шага.

В-третьих, вы уверены, что у вас есть токен обновления, а не обычный токен?

Попробуйте эти вещи и сообщите мне, если это сработало для вас или нет?