You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google开发者控制台配置XOAUTH2实现PHPMailer Gmail发信求助

问题原因确认

Google在2023年Q4完成了开发者控制台OAuth2.0配置流程的全量更新,针对Gmail API这类涉及用户数据的敏感权限应用,新增了强制先完成OAuth同意屏幕配置的要求,所有旧教程中跳过同意屏幕直接创建Client ID的操作路径已完全失效,这是你遇到操作步骤与教程不匹配的核心原因。

适配2024年最新控制台的XOAUTH2配置步骤

  • 第一步:创建项目并开启Gmail API
    进入Google开发者控制台创建新项目,搜索「Gmail API」进入详情页点击启用,该步骤与旧流程无差异。
  • 第二步:配置OAuth同意屏幕

    该步骤为新流程新增的强制要求,绝大多数旧教程均未提及

    • 用户类型选择:个人Gmail账号选「外部」,如果发信账号属于Google Workspace企业账号可选择「内部」,选择内部无需后续应用审核即可全企业内生效
    • 基础信息页仅需填写应用名称、用户支持邮箱、开发者联系信息三个必填项,其余非必填项可直接留空跳过
    • 权限添加页面搜索并添加https://mail.google.com/这个Gmail全权限scope,不要选择仅读/仅发送的窄权限,会直接导致PHPMailer发信鉴权失败
    • 测试用户页面添加你要用来发信的Gmail账号,未被添加进列表的账号无法完成后续OAuth鉴权流程
  • 第三步:创建Client ID
    同意屏幕配置完成后进入「凭据」页面,点击「创建凭据」选择「OAuth 客户端 ID」
    • 应用类型选择「Web应用」
    • 已获授权的重定向URI填写你部署的PHPMailer配套授权脚本的公网访问地址,本地测试可填写本地环境对应的脚本路径
    • 完成创建后即可获取有效Client ID和Client Secret
  • 第四步:PHPMailer侧配置
    将获取到的参数填入PHPMailer的XOAUTH2配置段即可,参考配置代码:
    $mail->isSMTP();
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
    $mail->Port = 587;
    $mail->AuthType = 'XOAUTH2';
    $mail->oauthUserEmail = "你的发信邮箱地址";
    $mail->oauthClientId = "你生成的Client ID";
    $mail->oauthClientSecret = "你生成的Client Secret";
    $mail->oauthRefreshToken = "授权后获取的Refresh Token";
    

已有Client ID有效性验证方法

如果你已自行摸索完成配置生成了Client ID,可以通过以下方式快速验证有效性:

  • 运行PHPMailer自带的授权获取脚本,输入你的Client ID和Secret,能正常跳转至Google账号登录页面即代表凭证有效
  • 若登录后提示「应用未经过Google验证」属于正常情况,只要你之前在同意屏幕的测试用户列表中添加了当前登录的账号,直接点击「高级」-「继续前往(应用名)」即可完成授权获取Refresh Token

内容的提问来源于stack exchange,提问作者Dan Suson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 04:15:03