n8n Email节点发送邮件:配置SMTP、HTML模板与附件的完整实践

2026-02-06 11 0

场景导入:告别“复制粘贴”的机械劳动

你是否每天都要面对这样的场景:系统产生了一条新订单,你需要手动截图,打开邮箱,粘贴客户信息,再配上一段千篇一律的文案,最后点击发送。这不仅效率低下,而且极易出错。一旦订单量暴增,这种“手工搬砖”的模式瞬间就会成为业务瓶颈。

N8N大学看来,自动化不是为了炫技,而是为了把人从重复的机械劳动中解放出来。今天,笔者就带大家深入拆解 n8n 中最常用的 Email 节点。我们将从零开始,手把手教你配置 SMTP 服务、编写动态 HTML 模板,以及如何优雅地发送附件。这不仅仅是一篇教程,更是你通往自动化高手的必经之路。

准备工作:发送邮件的“通行证”

在开始配置 n8n 之前,你需要准备好以下硬性条件。就像开车需要驾照一样,发邮件需要“通行证”:

  1. 一个可用的 SMTP 账号: 无论是企业邮箱(如腾讯企业邮、阿里企业邮)还是个人邮箱(如 Gmail、Outlook),你都需要获取它们的 SMTP 授权码(注意:通常不是登录密码)。
  2. n8n 环境: 本地安装或服务器部署的 n8n 均可。如果你还没有搭建环境,建议先参考 N8N大学的 Docker 部署指南
  3. 一个测试数据源: 为了演示 HTML 模板的动态渲染,我们需要模拟一些数据,比如用户名、订单号等。

核心实操:三步搞定专业邮件发送

Step 1: 配置 SMTP 节点基础参数

首先,在 n8n 的画布中拖入一个 Email 节点。双击打开配置面板,你会看到几个关键参数:

  • Protocol(协议): 选择 SMTP
  • Host(主机): 填写你的 SMTP 服务器地址。例如,QQ 邮箱是 smtp.qq.com,Gmail 是 smtp.gmail.com
  • Port(端口): 常用的有 465 (SSL) 或 587 (TLS)。建议优先尝试 465 端口,连接更稳定。
  • User(用户名): 你的完整邮箱地址。
  • Password(密码): 注意! 这里通常填写的是你的 SMTP 授权码,而不是邮箱登录密码。去你的邮箱后台找“生成授权码”或“客户端专用密码”。

配置完后,点击右上角的 Test credentials。如果显示绿色的 Success,恭喜你,第一关已过。

Step 2: 构建动态 HTML 模板

只会发纯文本?那太初级了。在 n8n 中,我们可以通过 HTML 标签和 表达式 来制作精美的动态邮件。

在 Email 节点的设置中:

  1. Subject(主题): 使用表达式让标题更鲜活。例如:你好,{{ $json.userName }},你的订单 {{ $json.orderId }} 已发货
  2. Text(文本): 这是纯文本版本,作为兜底。可以简单写:订单 {{ $json.orderId }} 已发货。
  3. HTML(重点): 勾选 HTML 选项。在这里,你可以尽情发挥 HTML 的能力:
<div style="font-family: Arial, sans-serif; color: #333;">
  <h2>你好,{{ $json.userName }}!</h2>
  <p>感谢您的购买,您的订单 <strong>{{ $json.orderId }}</strong> 已经打包完毕,准备发货。</p>
  <p>预计送达时间:{{ $json.date }}</p>
  <hr>
  <p style="font-size: 12px; color: #999;">此邮件由 N8N大学 自动发送,请勿直接回复。</p>
</div>

这里的关键在于 Mustache 表达式(即 {{ }} 包裹的内容),n8n 会自动将上一个节点传递过来的数据填充进去,实现千人千面的邮件内容。

Step 3: 添加附件(如发票、PDF)

很多场景下,我们需要随邮件发送附件(如发票、合同)。在 n8n 的 Email 节点中,这是一个非常实用的功能。

在节点配置中找到 Attachments(附件) 选项:

  • Binary Data(二进制数据): 如果附件是 n8n 内部生成的(例如通过 PDF 节点生成的发票),选择 Binary 并在字段中填入对应的二进制数据属性名(如 data)。
  • From File(来自文件): 如果你引用的是外部文件链接,可以直接填写 URL。
  • 文件名: 确保指定输出的文件名,例如 invoice.pdf

实战技巧: 如果你是在处理网盘同步,通常会先使用 HTTP Request 节点下载文件,将二进制流传递给 Email 节点。在 Email 节点的附件设置中,直接引用上一个节点传递过来的二进制属性即可。

避坑指南:实战中容易报错的细节

在 N8N大学 的实战经验中,90% 的邮件发送失败都源于以下两个细节:

  1. “连接超时”或“端口被拒绝”:

    如果你使用的是云服务器(如阿里云、腾讯云),它们通常默认封禁了 25 端口(SMTP 的默认端口)。解决方案: 始终使用 465 (SSL)587 (TLS) 端口,并在云服务器的安全组中放行这些端口的出方向流量。
  2. HTML 样式失效:

    很多邮箱客户端(如 Outlook)对 CSS 的支持很严格。尽量使用 行内样式(Inline CSS),即把 style="..." 直接写在 HTML 标签上,避免使用外部 CSS 或 <style> 块,否则邮件看起来会乱码。

FAQ 问答:你可能遇到的问题

Q1: 为什么我配置了正确的密码却提示“Authentication failed”?

A: 绝大多数情况下,是因为你输入的是邮箱的登录密码,而不是 SMTP 授权码。请登录你的邮箱后台,在设置中生成一个专门给第三方客户端使用的“授权码”,并用它替换密码字段。

Q2: n8n 发送邮件有频率限制吗?

>A: 这取决于你的 SMTP 服务商。例如,免费的 Gmail 或 QQ 邮箱每天有发送上限(通常几百封)。如果是企业级营销邮件,建议使用专业的邮件服务商(如 SendGrid、Mailchimp)或自建邮件服务器(如 Postfix),并配置对应的 SMTP。

Q3: 如何在邮件中插入图片?

A: 有两种方式。一种是使用公网可访问的图片链接(<img src="https://...">);另一种是将图片作为附件并在 HTML 中引用,但这比较复杂,通常推荐第一种,确图片链接稳定。

总结与资源

掌握了 n8n 的 Email 节点,你就拥有了自动化业务通知的“咽喉”。从简单的验证码发送,到复杂的带附件的日报周报,它都能轻松应对。记住,自动化的核心不在于工具本身,而在于你如何将它与业务逻辑结合。

如果你在实践中遇到了其他棘手的问题,或者想要了解更多关于 n8n 的硬核玩法,欢迎访问 N8N大学 (n8ndx.com)。在这里,我们拒绝废话,只讲干货。

相关文章

n8n Error Handling 节点报错太心烦?试试这些更灵活的替代方案
n8n 节点报错了?用 Error Handling 让它自动重试并通知你
n8n Wait节点在数据同步中的延迟控制实战
n8n Wait节点免费版:我能用它实现定时任务吗?
n8n Error Handling节点:当自动化流程“翻车”时,如何让它自动“扶起来”?
n8n Error Handling节点报错常见问题解决

发布评论