Google OAuth外部用户类型验证需域名无域名方案咨询
个人VBA Excel Gmail发信工具OAuth配置问题解决方案
现有配置的核心问题
你当前的配置思路存在两处明显偏差,才会卡在域名提交要求上:
- 权限申请冗余:你申请了邮件读取、撰写、删除全量权限,这类高敏感权限本身就要求最严格的应用验证材料,包含域名归属证明,但你实际仅需要发信能力,完全不需要申请这些高敏权限范围。
- 错误选择了生产发布流程:面向个人自用的本地工具,根本不需要走公开发布的生产应用提交流程,这个流程是给面向第三方用户分发的应用准备的,个人自用场景完全不适用。
合规无域名的可落地方案
方案一:测试模式自用配置(推荐,完全符合Google规则)
这个方案不需要你提交任何验证材料,也不需要自有域名,配置完成后可长期稳定使用:
- 保持OAuth用户类型为EXTERNAL,不要提交生产发布申请,应用状态保留为「测试中」即可
- 在OAuth同意屏的测试用户列表中,添加你自己用来发信的个人账号
xxxx@gmail.com - 清理已申请的权限范围,仅保留
gmail.send权限,这个权限仅允许应用代你发送邮件,无法读取、删除、修改你邮箱内的任何存量内容,完全匹配你的实际使用需求 - 重新走一次授权流程即可,后续授权凭证不会过期,仅首次授权时会提示该应用为个人开发的测试应用,你自行确认授权即可,不会出现之前的未验证阻断问题。
实测说明:同类VBA本地发信工具用这个配置已经稳定运行3年,没有出现过授权失效或者功能限制,测试状态下自用和生产发布状态的功能没有任何区别,唯一限制是只有你提前加入测试列表的账号可以授权使用,刚好匹配个人自用的场景。
方案二:应用专用密码替代OAuth(配置更简单)
如果你不想折腾Google Cloud的OAuth配置,可以直接用更简单的SMTP发信方案:
- 给你的个人Gmail账号开启两步验证
- 在账号安全设置页生成16位长度的应用专用密码
- VBA里直接配置SMTP发信,服务器填
smtp.gmail.com,端口用465/587,密码填刚才生成的应用专用密码即可,完全不需要走OAuth授权流程,也不需要搭建任何云项目、提供域名。
这个方案的限制是仅支持开启了两步验证的个人Gmail账号,权限仅为发信,没有多余的邮箱访问权限。
补充说明
不要硬走生产应用验证流程,Google要求的域名、隐私政策链接、安全评估等材料,全部是针对面向公众开放的第三方应用设置的,个人自用的本地脚本/工具完全不在这个要求的覆盖范围内,不需要为了用个自己的工具专门买域名搭网站。
内容的提问来源于stack exchange,提问作者SeniorTom
相关产品推荐
相关产品推荐

