Gmail SMTP,客户端-> 服务器:AUTH XOAUTH2,SMTP 错误:AUTH 命令失败:334
Posted
技术标签:
【中文标题】Gmail SMTP,客户端-> 服务器:AUTH XOAUTH2,SMTP 错误:AUTH 命令失败:334【英文标题】:Gmail SMTP, CLIENT -> SERVER: AUTH XOAUTH2, SMTP ERROR: AUTH command failed: 334 【发布时间】:2018-09-25 00:38:48 【问题描述】:我正在尝试连接Gmail SMTP v1.1.7 plugin。
我已经通过谷歌开发者控制台成功激活它,获取 OAuth 密钥
然后将插件与 Gmail 连接
但是,当我尝试发送测试电子邮件时,我收到了身份验证错误
服务器信息 2018-04-15 00:46:32 连接:打开 smtp.gmail.com:587, timeout=300, options=array ('ssl' => array ('verify_peer' => false, 'verify_peer_name' => false , 'allow_self_signed' => true, ),) 2018-04-15 00:46:33 连接:打开 2018-04-15 00:46:33 SMTP -> get_lines(): $data 是 "" 2018-04-15 00:46:33 SMTP -> get_lines(): $str 是“220 smtp.gmail.com ESMTP e77sm21399032pfk.147 - gsmtp” 2018-04-15 00:46:33 服务器 -> 客户端:220 smtp.gmail.com ESMTP e77sm21399032pfk.147 - gsmtp 2018-04-15 00:46:33 客户端 -> 服务器:EHLO 本地主机 2018-04-15 00:46:34 SMTP -> get_lines(): $data 是 "" 2018-04-15 00:46:34 SMTP -> get_lines(): $str 是“250-smtp.gmail.com 为您服务,[113.166.92.87]” 2018-04-15 00:46:34 SMTP -> get_lines(): $data 是“250-smtp.gmail.com 为您服务,[113.166.92.87]” 2018-04-15 00:46:34 SMTP -> get_lines(): $str 是“250-SIZE 35882577” 2018-04-15 00:46:34 SMTP -> get_lines(): $data 是“250-smtp.gmail.com 为您服务,[113.166.92.87]250-SIZE 35882577” 2018-04-15 00:46:34 SMTP -> get_lines(): $str 是“250-8BITMIME” 2018-04-15 00:46:34 SMTP -> get_lines(): $data 是“250-smtp.gmail.com 为您服务,[113.166.92.87]250-SIZE 35882577250-8BITMIME” 2018-04-15 00:46:34 SMTP -> get_lines(): $str 是“250-STARTTLS” 2018-04-15 00:46:34 SMTP -> get_lines(): $data 是“250-smtp.gmail.com 为您服务,[113.166.92.87]250-SIZE 35882577250-8BITMIME250-STARTTLS” 2018-04-15 00:46:34 SMTP -> get_lines(): $str 是“250-ENHANCEDSTATUSCODES” 2018-04-15 00:46:34 SMTP -> get_lines(): $data 是“250-smtp.gmail.com 为您服务,[113.166.92.87]250-SIZE 35882577250-8BITMIME250-STARTTLS250-ENHANCEDSTATUSCODES” 2018-04-15 00:46:34 SMTP -> get_lines(): $str 是“250-PIPELINING” 2018-04-15 00:46:34 SMTP -> get_lines(): $data 是“250-smtp.gmail.com 为您服务,[113.166.92.87]250-SIZE 35882577250-8BITMIME250-STARTTLS250-ENHANCEDSTATUSCODES250-PIPELINING” 2018-04-15 00:46:34 SMTP -> get_lines(): $str 是“250-CHUNKING” 2018-04-15 00:46:34 SMTP -> get_lines(): $data 是“250-smtp.gmail.com 为您服务,[113.166.92.87]250-SIZE 35882577250-8BITMIME250-STARTTLS250-ENHANCEDSTATUSCODES250-PIPELINING250-大块“ 2018-04-15 00:46:34 SMTP -> get_lines(): $str 是“250 SMTPUTF8” 2018-04-15 00:46:34 服务器 -> 客户端:250-smtp.gmail.com 为您服务,[113.166.92.87]250-SIZE 35882577250-8BITMIME250-STARTTLS250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTP8 服务器:STARTTLS 2018-04-15 00:46:34 SMTP -> get_lines(): $data 是 "" 2018-04-15 00:46:34 SMTP -> get_lines(): $str 是“220 2.0.0 准备启动 TLS” 2018-04-15 00:46:34 服务器 -> 客户端:220 2.0.0 准备启动 TLS 2018-04-15 00:46:34 客户端 -> 服务器:EHLO 本地主机 2018-04-15 00:46:35 SMTP -> get_lines(): $data 是 "" 2018-04-15 00:46:35 SMTP -> get_lines(): $str 是“250-smtp.gmail.com 为您服务,[113.166.92.87]” 2018-04-15 00:46:35 SMTP -> get_lines(): $data 是“250-smtp.gmail.com 为您服务,[113.166.92.87]” 2018-04-15 00:46:35 SMTP -> get_lines(): $str 是“250-SIZE 35882577” 2018-04-15 00:46:35 SMTP -> get_lines(): $data 是“250-smtp.gmail.com 为您服务,[113.166.92.87]250-SIZE 35882577” 2018-04-15 00:46:35 SMTP -> get_lines(): $str 是“250-8BITMIME” 2018-04-15 00:46:35 SMTP -> get_lines(): $data 是“250-smtp.gmail.com 为您服务,[113.166.92.87]250-SIZE 35882577250-8BITMIME” 2018-04-15 00:46:35 SMTP -> get_lines(): $str 是“250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OUTHBEARER XOAUTH” 2018-04-15 00:46:35 SMTP -> get_lines(): $data 是“250-smtp.gmail.com 为您服务,[113.166.92.87]250-SIZE 35882577250-8BITMIME250-AUTH LOGIN PLAIN XOAUTH2 PLAIN- CLIENTTOKEN OAUTHBEARER XOAUTH" 2018-04-15 00:46:35 SMTP -> get_lines(): $str 是“250-ENHANCEDSTATUSCODES” 2018-04-15 00:46:35 SMTP -> get_lines(): $data 是“250-smtp.gmail.com 为您服务,[113.166.92.87]250-SIZE 35882577250-8BITMIME250-AUTH LOGIN PLAIN XOAUTH2 PLAIN- CLIENTTOKEN OAUTHBEARER XOAUTH250-ENHANCEDSTATUSCODES" 2018-04-15 00:46:35 SMTP -> get_lines(): $str 是“250-PIPELINING” 2018-04-15 00:46:35 SMTP -> get_lines(): $data 是“250-smtp.gmail.com 为您服务,[113.166.92.87]250-SIZE 35882577250-8BITMIME250-AUTH LOGIN PLAIN XOAUTH2 PLAIN- CLIENTTOKEN OAUTHBEARER XOAUTH250-ENHANCEDSTATUSCODES250-PIPELINING" 2018-04-15 00:46:35 SMTP -> get_lines(): $str 是“250-CHUNKING” 2018-04-15 00:46:35 SMTP -> get_lines(): $data 是“250-smtp.gmail.com 为您服务,[113.166.92.87]250-SIZE 35882577250-8BITMIME250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-客户端令牌 OAUTHBEARER XOAUTH250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING" 2018-04-15 00:46:35 SMTP -> get_lines(): $str 是“250 SMTPUTF8” 2018-04-15 00:46:35 SERVER -> CLIENT: 250-smtp.gmail.com 为您服务,[113.166.92.87]250-SIZE 35882577250-8BITMIME250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUHBEARER XOAUTH250-EN PIPELINING250-CHUNKING250 SMTPUTF8 2018-04-15 00:46:35 请求的身份验证方法:XOAUTH2 2018-04-15 00:46:35 服务器上可用的身份验证方法:LOGIN,PLAIN,XOAUTH2,PLAIN-CLIENTTOKEN,OAUTHBEARER,XOAUTH 2018-04-15 00:46:36 客户端 -> 服务器:AUTH XOAUTH2 [somethingEncriptedHere]= 2018-04-15 00:46:36 SMTP -> get_lines(): $data 是 "" 2018-04-15 00:46:36 SMTP -> get_lines(): $str 是 "334 [somethingShorteEncriptedHere]==" 2018-04-15 00:46:36 服务器 -> 客户端:334 [somethingShorteEncriptedHere]== 2018-04-15 00:46:36 SMTP 错误:AUTH 命令失败:334 [somethingShorterEncriptedHere]== SMTP 错误:无法验证。 2018-04-15 00:46:36 客户端 -> 服务器:退出
然后它尝试使用用户名和密码,但也失败了。
日志的相关部分是
2018-04-15 00:46:35 请求的身份验证方法:XOAUTH2 //协商身份验证方法 2018-04-15 00:46:35 服务器上可用的身份验证方法:LOGIN,PLAIN,XOAUTH2,PLAIN-CLIENTTOKEN,OAUTHBEARER,XOAUTH //协商身份验证方法 2018-04-15 00:46:36 CLIENT -> SERVER: AUTH XOAUTH2 [somethingEncriptedHere]= //发送加密的客户端密码(我的猜测) 2018-04-15 00:46:36 SMTP -> get_lines(): $data 是 "" 2018-04-15 00:46:36 SMTP -> get_lines(): $str 是 "334 [somethingShorterEncriptedHere]==" 2018-04-15 00:46:36 服务器 -> 客户端:334 [somethingShorterEncriptedHere]== 2018-04-15 00:46:36 SMTP 错误:AUTH 命令失败:334 [somethingShorterEncriptedHere]== //失败 SMTP 错误:无法验证。 2018-04-15 00:46:36 客户端 -> 服务器:退出
如果它已经成功连接/注册了 Gmail 插件,我不知道为什么它会在身份验证失败?
【问题讨论】:
【参考方案1】:我自己想通了
似乎电子邮件必须是我已将 Web 应用程序连接到 (xxxxx@gmail.com
) 的电子邮件,而不是看起来像 xxxxx@smtp-xxxx.iam.gserviceaccount.com
的电子邮件
换句话说,您可以使用错误的电子邮件将插件连接到 gmail API,但稍后发送电子邮件会失败。
【讨论】:
【参考方案2】:首先您可以检查 API,然后您可以在另一个网络服务器中进行检查。 您是否为您自己的网站授予了 google API 权限? 如果有什么不正常,也许你必须检查你的插件版本。
【讨论】:
以上是关于Gmail SMTP,客户端-> 服务器:AUTH XOAUTH2,SMTP 错误:AUTH 命令失败:334的主要内容,如果未能解决你的问题,请参考以下文章
SMTP connect()失败。 https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
Gmail,QMail,163邮箱的 IMAP/SMTP/POP3 地址
使用 .NET core 2.2 中的 MailKit SMTP 客户端通过 Gmail SMTP 发送邮件对我不起作用