如何为Heroku托管的Web项目授予Gmail账户程序化访问权限
2022年5月Google SMTP政策调整后自有应用授权操作指南
你找不到旧版配置入口是正常情况——Google在2022年5月30日正式下线「低安全性应用访问」通道后,不再支持第三方应用直接用Gmail账号密码登录,也没有在个人账号安全页提供手动添加自有应用的直接入口,所有程序化访问必须走以下两类合规路径:
方案一:仅个人自用(Heroku项目只需要用你自己的Gmail发信,无需给其他用户开放)
这是最简便的方案,不需要做OAuth开发,全程5分钟就能配完:
- 先给目标Gmail账号开启两步验证:进入Google账户「安全」板块,在「登录Google」栏目找到「两步验证」选项,按提示完成手机号/身份验证器绑定即可。注意:没开两步验证的账号不会显示应用专用密码入口,这步是必须的
- 两步验证开启后,回到「安全」板块的「登录Google」栏目,就能看到新出现的「应用专用密码」选项,点击进入
- 应用类型选择「其他」,自定义填写备注名(比如
Heroku个人Web项目),点击生成按钮 - 复制弹出的16位专用密码,替换你Heroku项目里原有的SMTP密码配置,固定参数如下:
- SMTP服务器地址:
smtp.gmail.com - 端口:
465(SSL协议)或587(TLS协议) - 登录用户名:你的完整Gmail邮箱地址
- 登录密码:刚才生成的16位应用专用密码(不要填你Gmail账号的日常登录密码)
- SMTP服务器地址:
- 保存配置后直接测试发信即可,不需要额外做其他授权操作。该专用密码仅拥有邮件收发相关权限,不会泄露主账号登录权限,后续如果不需要了随时可以在应用专用密码页面撤销。
方案二:需要给多个普通Gmail用户开放应用内邮件权限
如果你的Heroku项目要面向其他访客提供绑定个人Gmail发信的功能,不能用应用专用密码,必须走Google Cloud的OAuth授权流程:
- 打开Google Cloud控制台,新建一个独立项目
- 进入「API和服务-库」页面,搜索并启用
Gmail API - 进入「OAuth 同意屏幕」配置页:如果你的所有使用者都在同一个Google Workspace(原G Suite)域内,选择「内部」应用类型,不需要审核就能给所有域内账号用;如果要给任意个人Gmail账号开放,选择「外部」类型
- 按页面提示填写应用名称、开发者联系方式等基础信息,在「权限范围」环节添加Gmail发信对应的权限标识
https://www.googleapis.com/auth/gmail.send - 「外部」类型应用未提交审核前处于测试状态,只有你提前添加到测试名单里的Google账号才能完成授权;要面向所有公众用户开放,必须按要求提交Google的OAuth合规审核,审核通过后,你在应用里集成的「使用Google登录」按钮才会对所有用户正常显示、完成授权
- 应用端集成Google OAuth授权逻辑后,用用户授权后返回的access token代替传统密码做SMTP身份认证即可正常发信
操作误区说明:你之前找到的「拥有账户访问权的第三方应用」页面,只会展示已经走完完整OAuth授权流程的应用,本身没有手动新增应用的功能。所有旧教程里提到的「开启低安全性应用访问」操作路径已经永久下线,无需再反复查找。
内容的提问来源于stack exchange,提问作者chocalaca
相关产品推荐
相关产品推荐

