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

使用Nodemailer调用Gmail SMTP发送邮件时遭遇连接超时错误(connect ETIMEDOUT)求助

Nodemailer调用Gmail SMTP发送邮件时遭遇连接超时错误(connect ETIMEDOUT)求助

遇到这种连接超时的问题真的挺闹心的,我之前也碰到过类似情况,结合你提供的代码和配置,给你几个实用的排查和解决方向:

  • 检查环境变量的类型转换
    你代码里直接使用process.env.SMTP_PORT,但环境变量默认是字符串类型,而Nodemailer的port参数需要数字类型。如果端口被解析成字符串,可能会导致连接异常。建议修改为:

    port: Number(process.env.SMTP_PORT),
    
  • 排查网络与防火墙限制
    连接超时(ETIMEDOUT)绝大多数是网络层面的问题:

    • 先在终端用telnet smtp.gmail.com 587测试端口连通性,如果连不上,说明你的机器/服务器的防火墙拦截了587端口,或者ISP屏蔽了Gmail的SMTP服务。可以尝试换网络环境(比如手机热点),或者联系运维开放对应端口。
    • 也有可能是DNS解析问题,试试直接用Gmail SMTP的IP地址替换smtp.gmail.com(可以通过nslookup smtp.gmail.com获取)。
  • 添加调试与TLS配置
    开启Nodemailer的调试模式,同时临时关闭TLS证书验证(仅用于排查,生产环境不建议),能帮你定位具体的连接问题:

    const transporter = nodemailer.createTransport({
      host: process.env.SMTP_HOST,
      port: Number(process.env.SMTP_PORT),
      secure: false,
      debug: true, // 开启调试模式,查看完整连接日志
      tls: {
        rejectUnauthorized: false // 临时关闭证书验证,排查是否是证书问题
      },
      auth: {
        user: process.env.SMTP_MAIL,
        pass: process.env.SMTP_PASSWORD,
      },
    });
    

    运行后查看控制台的调试日志,就能知道是DNS解析失败、TCP握手超时还是其他环节出了问题。

  • 再次确认应用密码的有效性
    虽然你已经使用了应用密码,但再仔细核对几点:

    • 应用密码是在开启Google账号2FA之后生成的,未开启2FA无法生成有效应用密码。
    • 生成应用密码时,选择的应用类型是「邮件」,而不是其他类型(选「其他」也可以,但要确保生成过程正确)。
    • 检查Google账号是否有异常登录记录,或者被限制了第三方邮件客户端的访问。
  • 尝试切换SMTP端口
    如果587端口一直无法连通,可以试试Gmail的465端口,对应的配置要修改secure为true:

    const transporter = nodemailer.createTransport({
      host: process.env.SMTP_HOST,
      port: 465,
      secure: true,
      auth: {
        user: process.env.SMTP_MAIL,
        pass: process.env.SMTP_PASSWORD,
      },
    });
    

另外,你的/sendEmail接口里没有给客户端返回响应,建议在回调里补充:

transporter.sendMail(mailOptions, function (error, info) {
  if (error) {
    console.log(error);
    res.status(500).json({ success: false, message: "邮件发送失败" });
  } else {
    console.log("Email sent successfully!");
    res.status(200).json({ success: true, message: "邮件发送成功" });
  }
});

备注:内容来源于stack exchange,提问作者Talha Zahid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 08:14:39