嘿,朋友!我是 N8N大学 的主编。如果你看到这篇文章,大概率是你的 n8n 工作流中,那个负责“报信”的邮件节点又炸了。
笔者见过太多朋友在群里问:“为什么我的邮件发不出去?”、“明明账号密码都对,为什么一直报错?”。
别慌。在自动化这条路上,报错是常态。今天,我们就把 n8n 邮件节点(Email Node)那些最常见的坑一个个填平。这篇指南不讲虚的,只讲硬核排查。
问题一:SMTP 服务器配置“一窍不通”
这是新手最容易栽跟头的地方。很多同学以为把邮箱账号密码往里一填就能发信,结果 n8n 直接甩给你一个 Invalid login or Server not available。
原因分析: n8n 不是你的邮箱客户端(比如 Outlook 或 Foxmail),它不懂你那套“默认设置”。你必须手动告诉它具体的 SMTP 服务器地址和端口。
解决方案: 去你的邮箱设置里找“POP3/SMTP/IMAP”服务(以 QQ 邮箱或 163 邮箱为例)。你需要填入以下硬性参数:
- SMTP Host: 例如
smtp.qq.com或smtp.163.com。 - Port: 通常是
465(SSL) 或587(TLS)。 - Security: 必须选择
SSL/TLS或STARTTLS,千万别选“无”。
笔者提示:如果你用的是 Gmail 或 Outlook,它们的安全策略更严,直接用密码通常不行,必须生成“应用专用密码”。
问题二:被当作垃圾邮件拦截(SPF/DKIM 验证失败)
这种情况最让人头疼:n8n 显示发送成功,但收件人邮箱里空空如也,或者跑到了垃圾箱。
原因分析: 这不是 n8n 的锅,而是你所使用的发件域名(或 IP)信誉度不够。现在的邮件服务器都有严格的反垃圾机制。如果你用的是QQ邮箱作为发送方,发给QQ邮箱没问题,但发给企业邮箱(如公司域名邮箱)大概率被拦截。
解决方案:
- 检查发件人地址: 尽量保持“From Address”和“Login User”一致。
- 配置域名解析(进阶): 如果你走的是自建 SMTP(如 SendGrid, Amazon SES),请务必在域名后台添加
SPF 记录(TXT) 和DKIM 记录。这是证明你不是垃圾邮件的关键。 - 测试发送: 先发给自己,再发给不同的服务商测试。
问题三:n8n 环境变量的“隐形坑”
如果你是通过 Docker 部署的 n8n,或者在服务器上用 PM2 启动的,这里有个大坑。
原因分析: 很多时候,你在 n8n 的 UI 界面里配置了邮件节点,测试也能发,但一旦重启容器或服务,配置就丢了,或者报 Connection refused。
解决方案: 检查你的环境变量。如果你在 docker-compose.yml 或启动命令中硬编码了 N8N_EMAIL_HOST 等全局环境变量,它们会覆盖 UI 里的配置,或者导致冲突。
建议在测试阶段,不要在环境变量里配置邮件,而是直接在 工作流内的 Email 节点 里配置。这样逻辑更清晰,也方便调试。
问题四:网络不通(防火墙/Docker 网络)
报错代码常为:getaddrinfo ENOTFOUND 或 Connection timed out。
原因分析: n8n 运行的环境无法访问公网的 SMTP 服务器。这在 Docker 容器中尤为常见。
解决方案:
- 检查 DNS: 确保你的服务器能 Ping 通 SMTP 服务器(如
ping smtp.qq.com)。 - Docker 网络: 如果你使用了特殊的 Docker 网络或代理,确保容器能解析外部 DNS。有时在 Dockerfile 中添加
network_mode: "host"能解决(视情况而定)。 - 端口放行: 服务器防火墙(如 AWS 的 Security Group, 阿里云的安全组)必须放行 出站 的 465/587 端口。
问题五:附件大小或格式限制
你想发个大点的文件,结果节点报错 Payload too large 或者直接卡死。
原因分析: 大多数 SMTP 服务商(包括 QQ 邮箱、Gmail)对单封邮件的附件大小有严格限制(通常是 20MB-25MB)。n8n 如果把文件全部读入内存再发送,很容易导致内存溢出(OOM)。
解决方案:
- 压缩文件: 发送前先在 n8n 中用
Compress Binary Data节点压缩。 - 分卷发送: 如果超过 20MB,建议改为网盘链接下载,而不是直接附件。
- 使用外部附件: n8n 的 Email 节点支持从 URL 读取附件。你可以先把文件传到 S3 或 Google Drive,然后把链接贴进去。
FAQ 常见问题解答
1. n8n 可以用 Gmail 发送邮件吗?
可以,但很麻烦。你需要开启 Gmail 的“两步验证”,然后生成一个“应用专用密码”(App Password)填入 n8n,而不是用你的常规登录密码。
2. 为什么我的 QQ 邮箱总是提示“授权码错误”?
请注意:QQ 邮箱在 SMTP 设置里生成的是 16位授权码,不是你的 QQ 登录密码。如果在 n8n 的 Password 字段填错了,就会报错。
3. 邮件发送成功但内容乱码怎么办?
在 Email 节点的设置中,检查“Text”或“HTML”内容的编码。通常 n8n 默认处理得不错,但如果你手动指定了 Header,确保包含 Content-Type: text/html; charset=UTF-8。
总结与资源
n8n 的邮件节点本质上就是对 SMTP 协议的封装。90% 的问题都出在 连接性(网络、端口、防火墙)和 认证(密码、授权码、SSL)上。
笔者建议,遇到报错时,先从最简单的“不带附件、不带变量”的纯文本邮件测起,一步步增加复杂度。
如果你在 n8n 的学习中还有其他卡点,欢迎访问 n8ndx.com,这里有更多实战案例等你来啃。自动化之路,我们并肩前行。