React Native中使用Google SMTP发邮件发布后被拦截如何解决?
解决方案
1. 适配两步验证的账号配置
- 如果你的谷歌账号开启了两步验证,「低安全性应用登录」权限不会生效,必须生成应用专用密码替换配置内的普通登录密码
- 生成方式:进入谷歌账号 > 安全 > 两步验证 > 应用专用密码,选择「其他」自定义应用名称后生成16位无空格密码,填入你SMTP配置的
password字段即可 - 如果未开启两步验证,定期检查「低安全性应用访问」权限没有被谷歌自动关闭,谷歌会根据账号风险动态关停该权限
2. 放行陌生IP登录请求
- 本地测试时使用的是你常用IP,谷歌不会触发拦截;上线后服务出口IP属于陌生地址,会触发异常登录保护机制
- 进入谷歌账号安全中心,找到对应被拦截的登录记录,手动标记为「本人操作」即可放行该IP的登录请求
3. 校验配置与发送规则
- 你当前的SMTP配置是匹配的:
smtp.gmail.com对应465端口+SSL加密,和代码里ssl: true的配置一致,不需要调整 - 避免短时间内大量发送邮件,超过谷歌SMTP发送频次限制也会被临时拦截
重要提示
不要在React Native前端代码中直接存储SMTP账号密码,应用打包发布后可被反编译提取凭证,存在邮箱被盗用发垃圾邮件的风险,建议将邮件发送逻辑迁移到后端服务,前端仅调用后端接口触发邮件发送即可。
内容的提问来源于stack exchange,提问作者Alen.Toma
相关产品推荐
相关产品推荐

