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

Google停用Less Secure Apps后如何用PHPMailer发Gmail邮件

PHPMailer对接Gmail发送失效的解决方案(低安全应用禁用后)

这个问题几乎所有用旧配置对接Gmail SMTP的开发者都遇到过——Google在2022年5月就已经全量下线了「Less Secure Apps(低安全应用访问)」权限,所有用账号明文密码直接走SMTP认证的旧逻辑都会被直接拦截,没有例外。

目前可行的调整方案有两种,按配置复杂度从低到高列:

方案一:使用应用专用密码(个人/单账号场景首选,配置最快)

这个方案的前提是你的Gmail账号已经开启了两步验证(2FA),没有开启两步验证的账号不会显示应用专用密码的入口。
配置步骤:

  • 登录Google账号,进入安全设置页面,先完成两步验证的开启流程,按提示绑定验证器或者手机号即可
  • 两步验证生效后,在安全设置页找到「应用专用密码」选项,选择应用类型为「邮件」,设备选你部署PHPMailer服务的对应设备,点击生成会得到一串16位的专属密码
  • 调整PHPMailer的配置参数,核心配置参考如下:
$mail = new PHPMailer(true);
$mail->isSMTP();
$mail->Host       = 'smtp.gmail.com';
$mail->SMTPAuth   = true;
$mail->Username   = '你的完整Gmail邮箱地址@gmail.com';
$mail->Password   = '刚才生成的16位应用专用密码,不要带生成时显示的空格';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$mail->Port       = 465;
// 其余发件人、收件人、邮件内容配置和之前完全一致,不需要调整
  • 写完先测试发1封,如果收到Google的安全提醒,点进去确认是本人操作即可,后续不会再重复拦截。

方案二:使用OAuth2.0鉴权(生产环境/多账号/企业Workspace账号场景推荐)

如果是企业级应用、需要对接多个Gmail账号,或者账号因为权限限制无法开启两步验证,可以用Google官方推荐的XOAUTH2认证方式,PHPMailer 6.0及以上版本原生支持该认证模式,不需要固定密码,通过API令牌完成鉴权,安全性更高。
配置要点:

  • 去Google Cloud控制台创建项目,开启Gmail API权限
  • 创建OAuth2.0凭据,拿到客户端ID、客户端密钥,给对应Gmail账号授权拿到刷新令牌
  • PHPMailer配置时指定AuthType为XOAUTH2,传入对应的凭据参数即可,不需要填写账号登录密码。

常见踩坑提醒

  • 不用再在Google账号设置里翻「低安全应用访问」的开关了,该功能已经全量下线,任何教你开这个选项的教程都是过时无效的
  • 如果部署在国内服务器,先本地测试telnet smtp.gmail.com 465确认端口连通性,很多时候发送失败是网络拦截导致的,和配置无关
  • 应用专用密码和账号登录密码独立,修改账号登录密码不会影响已生成的应用专用密码,不需要重复更新配置
  • 如果是Google Workspace企业账号,需要先让管理员在控制台允许用户开启应用专用密码或者使用Gmail API,否则个人设置里找不到对应入口

内容的提问来源于stack exchange,提问作者Parth Patalia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 03:06:37