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

Firebase无法发送验证邮件、重置密码邮件的故障排查

Firebase 控制台提示邮件已发送但收不到的排查&解决方案

按优先级从高到低排查以下常见问题:

  • 先核对操作和邮件类型的对应关系:你提到最初需求是发送邮箱验证邮件,但操作时点的是Reset password按钮,这个按钮触发的是密码重置邮件,和邮箱验证邮件是完全独立的两类邮件,要发送验证邮件需要在用户详情页选择Send verification email选项。
  • 先查邮件投递日志定位根因:进入Firebase控制台Authentication > Templates > Email delivery页面,这里会记录所有触发的邮件的真实投递状态:是被发信抑制、被邮箱服务商拒收、还是投递成功进了垃圾邮件,都有明确标记,不用盲目换邮箱测试。
    • 如果日志里显示邮箱被加入抑制列表(suppressed),一般是短时间内给同一个邮箱发信超过5次、或者之前的邮件被标记为垃圾邮件触发的,手动在这个页面移除对应邮箱的抑制状态即可恢复。
  • 检查发信域名配置:进入Authentication > Templates > Sender domain页面,如果你用的是Firebase默认提供的发信域名,新创建的未绑定结算方式的项目很容易触发风控静默拦截,控制台依然会提示发送成功,但实际不会投递。建议按页面提示配置自己的域名作为发信域,补全SPF、DKIM记录,能大幅提升送达率。
  • 确认配额和项目状态:
    • Spark免费计划每天的认证类邮件发送配额非常低,短时间多次测试很容易触达配额上限,触发限流后不会有明确报错,只会静默丢弃发信请求,等待24小时或者升级到Blaze计划(免费额度内不产生费用)即可解除限制。
    • 刚创建、信息不全、未绑定结算账号的项目会触发Google的风控规则,外发邮件功能会被临时限制,补全项目信息、绑定结算账号后即可恢复。
  • 排除控制台功能bug:不要只依赖控制台的手动发信按钮测试,直接在前端集成对应SDK方法走正式发信流程,有报错会直接返回明确错误码,以JS SDK为例,发送密码重置邮件的代码如下:
import { getAuth, sendPasswordResetEmail } from "firebase/auth";
const auth = getAuth();
sendPasswordResetEmail(auth, "你的测试邮箱地址")
  .then(() => {
    // 发信请求提交成功逻辑
  })
  .catch((error) => {
    // 打印错误码和错误信息定位问题
    console.log(error.code, error.message);
  });
  • 检查邮件模板配置:进入Authentication > Templates页面,确认密码重置、邮箱验证的邮件模板没有被添加违规内容,没有被修改到触发拦截规则,可以直接点模板内的测试发送按钮发信,测试信如果都收不到,优先按前面的发信域、风控规则排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 22:30:43