Imansible submit email PHPMailer 6.0 con Oauth Google

0 con Google Oauth e ottengo questo errore

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 

La mia sceneggiatura

 <?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 = "[email protected]"; $mail->oauthClientId = "932857915584-eco8v9aejdb2n3mkltgvftf8e5h1eiko.apps.googleusercontent.com"; $mail->oauthClientSecret = "7SqFo7aPYvZ05cHlh5p3kMUD"; $mail->oauthRefreshToken = "1/4KJJ5XMyXqELMAhRXGYjz_I4SfoWfFR9N9RRA2VA2I0"; $mail->addAddress('[email protected]'); // Add a recipient $mail->isHTML(true); // Set email format to HTML $mail->setFrom('[email protected]', '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'; } 

non ne ho idea, ho fatto ricerche su google ma non ho trovato nessuna soluzione. Prima di chiedere in Can not Send PHPMailer con Oauth Google

Qualche soluzione per il mio caso?

Per XOAUTH2 XOAUTH2, se si utilizza la versione 5.2 , si crea un'istanza della class errata . Il 6.0 funziona anche diversamente.

Dovresti usare:

$mail = new PHPMailerOAuth;

Questa è la ragione del seguente errore:

2017-08-04 06:38:43 SERVER -> CLIENT: 250-smtp.gmail.com al vostro servizio, [180 …… XOAUTH2 …… Errore SMTP: imansible autenticare.

Saluti!

Poche cose:

Innanzitutto, OAuth è davvero difficile eseguire il debug comunque. Consiglio vivamente di dare un'occhiata al branch 6.0 , in cui il supporto di OAuth è notevolmente migliorato. Viene fornito con esempi molto migliori e sarebbe molto utile se potesse essere utile testarlo. Questo secondo passo è il punto chiave e potrebbe risolvere il tuo problema. C'è una leggera differenza nell'iniziazione (usa la class PHPMailerOAuth ), quindi leggi attentamente i documenti.

Secondo, consulta questa documentazione, potresti averla seguita, ma controlla se ti manca qualche passaggio.

Terzo, sei sicuro di avere un token di aggiornamento e non un token normale?

Prova queste cose e fammi sapere, se ha funzionato per te o no?