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

Node.js使用nodemailer调用Gmail SMTP发送邮件连接超时如何解决?

错误产生原因
  • 网络层连通性故障:Gmail SMTP服务在部分区域无法直接访问,本地网络到smtp.gmail.com的465端口TCP链路被阻断,直接触发连接超时错误,这是该错误最常见的诱因。
  • 配置项位置错误:你的代码中tls配置被错误放在auth对象内部,正确位置应该和host、port平级,错误的配置会导致TLS握手逻辑异常,进一步引发连接失败。
  • 端口访问被拦截:本地防火墙、运行环境的安全组规则禁止了465端口的出站请求,也会导致TCP连接无法建立触发超时。
  • Gmail账号权限配置错误:未开启两步验证、未生成应用专用密码的Gmail账号,无法通过SMTP方式直接登录发信,部分场景下也会表现为连接类错误。
修复方案

1. 修正nodemailer配置

首先调整transport配置的结构,修正tls配置位置,参考正确配置如下:

let transporter = nodemailer.createTransport({
  host: "smtp.gmail.com",
  port: 465,
  secure: true, // 465端口对应secure为true,旧版本的secureConnection字段已被废弃,建议替换为secure
  tls: {
    rejectUnauthorized: false
  },
  auth: {
    user: '你的Gmail邮箱地址',
    pass: '你的Gmail应用专用密码'
  },
});

2. 排查网络连通性

在运行代码的环境中执行命令测试端口连通性:
telnet smtp.gmail.com 465
如果无法连通,需要先解决网络到Gmail SMTP服务的连通问题。

3. 配置Gmail账号权限

登录对应的Gmail账号,先开启两步验证,随后在账号安全设置中生成应用专用密码,将生成的16位应用专用密码替换配置中的pass字段,不要直接使用Gmail账号的登录密码。

4. 检查端口拦截规则

确认运行环境的本地防火墙、云服务器安全组的出站规则,放开465端口的访问限制,避免端口被拦截。

内容的提问来源于stack exchange,提问作者Fabian-Ivo Horvatic

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 11:48:05