解决 n8n 无法发送邮件:SMTP 服务配置与常见报错排查

2026-01-18 13 0

大家好,我是 N8N大学 的主编,指南针。

解决 n8n 无法发送邮件:SMTP 服务配置与常见报错排查

做自动化的兄弟姐妹们,肯定都遇到过这种让人抓狂的时刻:工作流跑通了,数据也抓到了,就差最后那封通知邮件死活发不出去。看着 n8n 界面上那个红色的报错提示,心里那叫一个急。

邮件发不出去,整个自动化流程就断了链,这事儿可大可小。今天,笔者就化身“邮件侦探”,带你从 SMTP 的底层配置开始,硬核拆解 n8n 发送邮件的常见坑点,保证让你看完之后,不仅能解决问题,还能看懂报错背后的逻辑。

第一步:搞懂 SMTP 发信的“硬通货”

很多新手一上来就直接填邮箱密码,结果发现 n8n 根本不认。其实,现在的邮箱服务商(比如 QQ 邮箱、163 邮箱、Gmail)为了安全,早就把“登录密码”和“发信密码”分开了。

在 n8n 里配置 Email Read IMAP 或者 Email Send 节点时,你必须准备以下四样“硬通货”:

  • SMTP 服务器地址:比如 smtp.qq.comsmtp.gmail.com
  • 端口号 (Port):通常 SSL 是 465,TLS 是 587。这个填错直接连不上。
  • 用户名:通常就是你的完整邮箱地址。
  • 授权码/专用密码:这才是关键!去你的邮箱后台生成一个专门给 n8n 用的 16 位授权码,千万别用你的邮箱登录密码。

笔者提示:如果你是用 Gmail,别忘了去 Google Cloud 开一个 OAuth2 应用,单纯的“授权码”模式在 Gmail 上已经很难走通了,这是目前最大的坑之一。

第二步:n8n 节点参数填空实战

打开 n8n 的 Email Send 节点,我们来逐项击破:

  1. Credentials (凭证) :点击下方的“新建凭证”。这里一定要选对类型,比如 QQ 邮箱选 SMTP 即可。
  2. Host / Port:把刚才查到的服务器和端口填进去。注意,如果 465 报错,尝试换成 587,并在下方勾选 Secure (SSL/TLS) 选项。
  3. From Email (发件人):填你的邮箱,必须和凭证里的用户名一致。
  4. To Email (收件人):可以填死数据测试,也可以用 {{ $json.email }} 这种表达式从上游节点动态获取。
  5. Subject (主题) & Text/HTML (正文):这里支持模板语法。比如你想在邮件里带上用户的名字,可以写:`你好,{{ $json.name }},你的订单已生成。`

填完后,先点一下“测试节点”,如果显示绿色对勾,说明配置没问题。如果还是红的,往下看。

第三步:常见报错代码“翻译”

当 n8n 弹出报错时,别只看 n8n 提示的“Could not send email”,要去点击那个红色感叹号,看具体的底层报错信息。以下是三个最常见的:

1. 535 Error: Authentication failed

翻译: 账号或密码不对。

排查: 90% 的情况是你填错了“授权码”,或者是用户名没写全(比如只写了 zhangsan,没写 zhangsan@qq.com)。极少数情况是你的 IP 被邮箱服务商拉黑了。

2. Connection timed out

翻译: n8n 服务器根本连不上邮箱的服务器。

排查: 如果你是在本地 Docker 跑的 n8n,检查一下防火墙是否拦截了 465/587 端口。如果你是云服务器,检查云服务商的安全组规则。另外,国内网络访问 Gmail 或 Outlook 经常会有波动,这属于物理层面的无奈。

3. self-signed certificate in certificate chain

翻译: SSL 证书验证失败。

排查: 这通常出现在自建的邮件服务器或者某些不规范的云邮上。在 n8n 的凭证设置里,找到 Ignore SSL Issues (忽略 SSL 问题) 并勾选它。这能解决大部分证书报错,但记住,仅限测试环境或信任的内网环境使用。

第四步:终极排查清单

如果上面都试过了还是不行,笔者建议你按顺序执行以下“急救措施”:

  • 更换发件箱:把你正在用的邮箱(比如企业邮)换成个人的 QQ 或 163 测试。如果个人的能发,说明是企业邮的管理员策略封禁了 n8n。
  • 检查 n8n 日志:如果你是 Docker 部署的,使用 docker logs -f [容器ID] 查看实时日志。n8n 的前端报错往往被简化了,后端日志里会有完整的 Node.js 栈溢出信息或网络握手细节。
  • IP 白名单:如果你的 n8n 部署在固定 IP 的服务器上,去邮箱后台把服务器 IP 加入“安全登录白名单”,避免触发异地登录风控。

FAQ 问答

Q1: 我可以用 QQ 邮箱发送,但用 Gmail 就失败,为什么?
A: 因为 Gmail 目前基本关闭了“密码+授权码”的传统 SMTP 登录方式,强制要求使用 OAuth2 认证。在 n8n 中配置 Gmail 需要创建 Google Cloud 项目并配置 OAuth Client ID,流程比较繁琐。建议新手先用 QQ 或 163 邮箱练手。

Q2: 为什么我在 n8n 里测试能发,放入工作流自动运行就报错?
A: 检查你的工作流触发器。如果是 Webhook 触发,确保数据格式正确。另外,检查是否启用了 Wait 节点导致超时。最常见的情况是:测试时用的是管理员账号的凭证,自动运行时工作流所属的权限不足,导致凭证读取失败。

Q3: n8n 支持发送带附件的邮件吗?
A: 支持。在 Email Send 节点中,有一个 Attachments (二进制数据) 选项。你需要确保上游节点(如 Read Binary FileHTTP Request)输出了二进制数据流,并在该选项中填入对应的字段引用(如 {{ $json.data }})。

总结与资源

配置 n8n 的邮件发送功能,核心在于理解“授权码”机制和端口安全协议。很多时候报错不是 n8n 的锅,而是邮箱服务商的安全策略在作祟。

建议大家在调试阶段,先用最基础的 SMTP 经典配置(如 QQ 邮箱)打通流程,确认逻辑无误后,再根据实际业务需求升级到企业邮或 OAuth2 方案。

如果你在配置过程中遇到了具体的报错截图,欢迎在 N8N大学 的社区留言,笔者会第一时间帮你分析。

相关文章

寻找免费的 Zapier 替代品?深度解析 n8n 社区版为何是最佳选择
不只是 n8n!2025年值得关注的 5 款开源自动化工具推荐与评测
省钱攻略:如何将 Zapier 自动化工作流无缝迁移到 n8n?
防止数据丢失:n8n 工作流与凭证(Credentials)的自动备份方案
Node.js 开发者首选:使用 npm 全局安装 n8n 及 PM2 进程守护教程
本地部署痛点解决:配合 Cloudflare Tunnel 实现 n8n 外网远程访问

发布评论