phpmailer 的 Oauth2 gmail SMTP 身份验证错误

Oauth2 gmail SMTP Authentication Error with phpmailer

真是噩梦。我不知道为什么我在过去 24 小时内收到这个。非常感谢任何帮助。

SERVER -> CLIENT: 220 smtp.gmail.com ESMTP w23sm28778307wmd.1 - gsmtp
CLIENT -> SERVER: EHLO cslexicon.tk
SERVER -> CLIENT: 250-smtp.gmail.com at your service, [31.170.164.33]250-SIZE 35882577250-8BITMIME250-STARTTLS250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8
CLIENT -> SERVER: STARTTLS
SERVER -> CLIENT: 220 2.0.0 Ready to start TLS
CLIENT -> SERVER: EHLO cslexicon.tk
SERVER -> CLIENT: 250-smtp.gmail.com at your service, [31.170.164.33]250-SIZE 35882577250-8BITMIME250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8
CLIENT -> SERVER: AUTH XOAUTH2 dXNlcj1zc3Nzc2F0aHlhYTY3QGdtYWlsLmNvbQFhdXRoPUJlYXJlciB5YTI5LmFRS2E2OC1qUmZsenhhYnE1YmkxNWlYcUtOa1VmTjdJZ3NBT2dLYU1uekhpR2I0NVV4dm9GNWozcDZoZGp3LXZtTjEyVEEBAQ==
SERVER -> CLIENT: 334 eyJzdGF0dXMiOiI0MDAiLCJzY2hlbWVzIjoiQmVhcmVyIiwic2NvcGUiOiJodHRwczovL21haWwuZ29vZ2xlLmNvbS8ifQ==
SMTP ERROR: AUTH command failed: 334 eyJzdGF0dXMiOiI0MDAiLCJzY2hlbWVzIjoiQmVhcmVyIiwic2NvcGUiOiJodHRwczovL21haWwuZ29vZ2xlLmNvbS8ifQ==
SMTP Error: Could not authenticate.
CLIENT -> SERVER: QUIT
SERVER -> CLIENT: 535-5.7.8 Username and Password not accepted. Learn more at535 5.7.8 https://support.google.com/mail/answer/14257 w23sm28778307wmd.1 - gsmtp
SMTP ERROR: QUIT command failed: 535-5.7.8 Username and Password not accepted. Learn more at535 5.7.8 https://support.google.com/mail/answer/14257 w23sm28778307wmd.1 - gsmtp
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

我使用了 league/oauth2-client、league/oauth2-google 并获得了刷新令牌。

ClientID、密码和刷新代码在我的 phpmailer 代码中一切正常。

已关注 https://support.google.com/mail/answer/14257

的所有内容

还是卡在这里好久

如果您使用 league/oauth2-client 和 league/oauth2-google,

获取刷新令牌默认会有如下提示

但是,这些权限不允许您发送电子邮件。

所以你应用了一个简单的快速修复。

在这个阶段,将视线移向地址栏中的 url。

仔细分析它,然后在某个地方找到它,

&scope=email+openid+profile&response_type

将范围改为以下,其余部分不要动,

&scope=https://mail.google.com/&response_type

现在,转到这个新修改的url。你会得到这样的提示,

单击“允许”,一切顺利。

我遇到了同样的问题。但是可以通过转到帐户设置并删除权限然后再次授予权限来解决。

希望它也适用于你

如果您正在处理 SMTP,请检查您的范围 请在 https://mail.google.com/

范围内添加