n8n Email节点发送附件教程:从零开始掌握邮件附件自动化发送

2026-02-07 22 0

别再手动打包发邮件了,这才是2024年的正确姿势

你是不是也经历过这样的场景:每天都要从不同的系统里导出报表,然后登录邮箱,一个个添加附件,填写标题,最后点击发送。如果只是发一次还好,但如果是每天都要重复,且文件名还带着乱码一样的时间戳,那简直是场噩梦。

笔者在做电商运营分析时,就曾被“日报”折磨得不行。每天要把后台的销售数据、客服的聊天记录导出,再手动发给老板。直到我用 n8n 搭建了自动化流程,这一切才变成了“喝口咖啡,报告已送达”的从容。

今天,N8N大学就带你彻底搞定 Email 节点发送附件。从零开始,手把手教你如何通过 n8n 自动化发送带附件的邮件,无论是 PDF 报表、Excel 数据还是图片,通通都能搞定。

准备工作:你需要这三样东西

在开始之前,我们需要准备好“弹药”。别担心,门槛很低:

  1. 一个 n8n 环境:可以是官方的 Cloud 版本,也可以是本地部署的 Docker 版本。
  2. 一个发件邮箱:推荐使用 Gmail、Outlook 或者企业邮箱。如果你是国内的 QQ 邮箱或 163 邮箱,记得先在设置里开启 SMTP 服务并获取“授权码”。
  3. 一个附件来源:这篇文章里,为了演示最通用的场景,我会用 HTTP Request 节点去下载一个网络上的图片作为附件。但在实际工作中,你的附件可能来自 Google SheetsRead Binary File 或者 Airtable

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

我们将搭建一个简单的流程:获取文件 -> 发送邮件。这是最稳健的结构。

第一步:获取二进制数据(附件)

在 n8n 中,附件属于“二进制数据”(Binary Data)。这意味着你不能直接把文件路径丢进去,必须把文件内容本身读取出来。

拖拽一个 HTTP Request 节点到画布上:

  • URL:填写一个文件的下载链接(例如:https://n8n.io/logo.png)。
  • Response Format:选择 File(二进制文件)。

点击“Test step”运行一下。如果配置正确,你会看到 Output Data 里出现了二进制数据的标识(通常是一个二进制图标)。这就是我们要发送的附件。

第二步:配置 Email 节点(关键步骤)

这是最容易出错的地方。拖拽一个 Email (Send) 节点(注意:不是简单的 SMTP,而是集成了更多功能的 Email 节点)。

首先配置发件人信息(Credential):

  • Host/Port:填入 SMTP 服务器地址(如 Gmail 是 smtp.gmail.com:587)。
  • User/Pass:填入你的邮箱账号和密码(如果是 QQ 邮箱,填授权码)。

然后配置邮件内容:

  • From Email:发件人地址。
  • To Email:收件人地址。
  • Subject:邮件标题(支持动态数据,比如“日报 - {{ $today }}”)。
  • Text:邮件正文。

第三步:挂载附件(灵魂所在)

很多新手在这里卡住,因为不知道去哪里填附件。请看 Email (Send) 节点的参数区域:

找到 Attachments (Binary File) 这一栏。点击右侧的“Add Attachment”按钮。

这里需要配置两个核心参数:

  1. Property Name:默认是 data。这代表 n8n 会去寻找上一个节点(也就是 HTTP Request)输出的二进制数据。
  2. File Name:这里一定要填!否则邮件发出去可能没有后缀名,对方打不开。你可以填死板的 report.png,也可以填动态的 sales_report_{{ $now }}

连接节点:将 HTTP Request 节点的 Output 连接到 Email 节点的 Input。

点击 Execute Workflow。搞定!去你的收件箱看看,带附件的邮件应该已经静静躺在那里了。

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

虽然步骤简单,但实战中总有坑。以下是 N8N大学帮你总结的两个高频坑点:

1. 附件名为乱码或无后缀

很多同学在 Attachments (Binary File) 里忘记填写 File Name。n8n 只负责传输二进制流,但并不知道这是什么文件。如果不指定文件名,收件端可能会将其识别为 .bin 文件或直接报错。切记:**File Name 必须包含扩展名**(如 .pdf, .xlsx)。

2. Gmail 的“不够安全的应用程序”报错

如果你使用 Gmail,直接用密码登录很可能会报错 535 5.7.8 Username and Password not accepted。这是因为 Google 对安全性要求极高。

解决方案

  • 开启 Google 账号的“两步验证”。
  • 去 Google Cloud Console 创建一个 OAuth 2.0 凭证(或者直接在 n8n 的 Gmail OAuth 凭证配置里登录授权)。虽然麻烦一点,但这是最安全且不会被封号的方式。

进阶玩法:让附件更智能

掌握了基础,我们来看看如何应对复杂需求。

多附件发送

如果你要一次性发送多个文件(例如:导出了 3 个 Excel 表格),你不需要创建 3 个 Email 节点。只需在 HTTP Request(或读取文件)节点后加一个 Split Out 或者确保你的二进制数据是一个数组。

在 Email 节点的 Attachments 处,直接映射整个二进制数组字段,n8n 会自动将其打包成多个附件发送。

基于表格数据的动态附件

这是最常用的场景:从 Google Sheets 读取一行数据,生成一个 PDF,然后发给对应的邮箱。

流程如下:

  1. Google Sheets Trigger(触发)。
  2. Generate PDF(或 Create Spreadsheet File):这里会生成一个新的二进制文件。
  3. Email (Send):将上一步生成的文件作为附件。

注意:在 Email 节点中,如果上一步输出的二进制字段名不是 data,你需要修改 Property Name 以匹配上游节点的输出字段。

FAQ 问答

Q1: 为什么我发送的附件在手机上打不开?
A: 这通常是因为文件名缺少后缀名,或者文件本身在生成过程中损坏了。请确保在 Email 节点的 Attachment 设置中明确填写了 File Name(例如 report.pdf),并检查上游节点是否成功生成了文件。

Q2: n8n 可以发送超大附件吗?(比如 50MB)
A: 可以,但受限于 SMTP 服务商的限制。大多数邮箱(如 Gmail)限制单封邮件 25MB。如果你的附件过大,建议使用 Google DriveAWS S3 节点先上传文件,然后在邮件正文中放入下载链接,而不是直接作为附件发送。

Q3: 如何发送 HTML 格式的精美邮件?
A: 在 Email (Send) 节点中,不要使用 Text 字段,而是使用 HTML 字段。你可以直接在 HTML 字段中编写 HTML 代码,或者引用一个变量(该变量包含 HTML 字符串),这样发送出去的邮件就会渲染出精美的样式。

总结与资源

通过 Email (Send) 节点配合二进制数据的流转,n8n 将繁琐的邮件发送工作变得极其简单且可扩展。无论是日报周报,还是客户通知,只要掌握了“获取二进制 -> 挂载附件”这一核心逻辑,你就能解锁无数自动化场景。

如果你在配置过程中遇到任何报错,或者想了解更多关于 n8n 的硬核技巧,欢迎访问 N8N大学 (n8ndx.com),这里有更多实战案例等着你。

现在,关掉你的邮箱客户端,让 n8n 帮你打工吧。

相关文章

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

发布评论