You need to enable JavaScript to run this app. 使用Firebase Functions发送邮件出现Unexpected socket close错误如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

使用Firebase Functions发送邮件出现Unexpected socket close错误如何解决?

问题解决方案

1. 确认Firebase计费计划符合要求

Firebase免费的Spark计划仅允许访问谷歌旗下服务,无法发起外部SMTP请求,必须升级到Blaze按需付费计划才能正常调用邮件发送接口。

2. 修正Gmail认证配置

2022年起谷歌已全面禁用普通账号密码登陆Gmail发送邮件的权限,你需要按以下步骤调整:

  • 为你的发件谷歌账号开启两步验证
  • 生成应用专用密码,替换transport配置中原有的账号密码
  • 确保transport配置参数正确,示例配置如下:
const nodemailer = require('nodemailer');
const transport = nodemailer.createTransport({
  host: 'smtp.gmail.com',
  port: 465,
  secure: true,
  auth: {
    user: 'xxxxxxx@gmail.com',
    pass: '你生成的应用专用密码'
  }
});

3. 确保云函数正确等待异步任务完成

你当前的sendEmail函数已经返回了sendMail的Promise,需要确认你在存储触发器的上层逻辑中,正确返回了sendEmail函数的执行结果,不要直接调用后忽略返回值,否则云函数会在邮件发送完成前提前销毁运行环境,中断socket连接导致报错。

4. 其他可选优化

如果频繁遇到限流问题,建议替换为事务邮件专用服务,稳定性远高于直接使用Gmail发件。

内容的提问来源于stack exchange,提问作者Emili Bellot Pulido

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 22:06:01