跳到主要内容

AI 驱动文档

您想了解什么?

使用 Node-RED 发送电子邮件

本教程演示如何使用 Node-RED 从 OV10i 相机设置自动化电子邮件通知。您将学习如何配置 Gmail 集成,并创建将检测警报、系统状态更新和故障通知直接发送到您的邮箱的工作流。

您将构建的内容: 一个自动化电子邮件系统,使用 Gmail SMTP 将 OV10i 的检测结果、警报和通知发送给指定收件人。

实际应用场景: 当检测失败时立即收到电子邮件警报,将每日质量报告发送给管理层,或在系统出现问题时通知维护团队——全部由您的视觉检测系统自动完成。

跳过手动设置

请用简短英文描述您需要的电子邮件通知类型, Auto-Integration Builder 将在几秒钟内为您生成一个完整的 Node-RED 流。

先决条件

  • OV10i 相机,具备 Node-RED 访问权限
  • 用于发送邮件的 Gmail 帐户
  • 对 Node-RED 流的基本理解
  • 访问 Google 帐号的安全设置

教程概览

将要构建的内容: 一个 Node-RED 流,自动发送带检测结果及系统警报的邮件通知。

所需时间: 20-30 分钟(含 Gmail 设置)

所学技能: Gmail 应用密码设置、SMTP 配置、自动化邮件通知

Step 1: 设置 Gmail App Password

1.1 启用两步验证

  1. 在 Google 帐号登录页面 访问 accounts.google.com
  2. 在左侧导航菜单中点击 “Security”
  3. **找到“Signing in to Google”**部分
  4. 点击“2-Step Verification”
  5. 按提示启用 2-Step Verification(若尚未启用)
备注

在创建应用密码之前,需要启用 2-Step Verification。

1.2 生成 App Password

  1. 在启用 2-Step Verification 后返回 Security 页面
  2. 点击“App passwords”(位于“Signing in to Google”下)
  3. 将应用类型选为“Mail”
  4. 将设备类型选为“Other”
  5. 输入一个名称,如“OV10i Node-RED Email”
  6. 点击“Generate”

1.3 保存您的 App Password

  1. 复制 Google 显示的 16 位密码
  2. 妥善保管——您将在 Node-RED 配置中使用它
  3. 备注:此密码仅显示一次。若丢失,请生成新的

检查点: 您应保存有一个 16 位 Gmail 应用密码,以供 Node-RED 使用。

Step 2: 安装 Email 节点(如有需要)

2.1 检查是否已有 Email 节点

  1. 在 OV10i 相机上打开 Node-RED
  2. 在左侧调色板的输出部分查找名为“email”的节点
  3. 若缺少,则需要安装 email 包

2.2 如需安装 Email 包

  1. 在 Node-RED 中点击汉堡菜单(≡)
  2. 选择“Manage palette(管理调色板)”
  3. 点击“Install(安装)”选项卡
  4. 搜索“node-red-node-email”
  5. 点击该包旁的“Install(安装)”

Step 3: 创建基础邮件流

3.1 添加所需节点

  1. 导航到 IO Block 以访问 Node-RED
  2. 从调色板拖动以下节点到画布上:
    • Inject 节点(用于测试)
    • Email 节点(来自输出部分)
  3. 将 Inject 的输出连接到 Email 的输入

3.2 基本流程结构

Inject → Email

流程目的: 用于测试和基本通知的简单邮件发送。

image.png

步骤 4:配置邮件内容

4.1 设置 Inject Node

  1. Double-click the inject node 以打开属性
  2. Set the payload:
    • Payload type: "string"
    • Payload value: 您的邮件正文文本(例如 "Inspection alert from OV10i")
  3. Add email subject:
    • Click "+ add" 以添加属性

    • Property name: "topic"

    • Property value: 您的邮件主题(例如 "OV10i Inspection Alert")

      image.png

4.2 示例基本配置

Payload (email body):

Inspection completed at Station 1
Status: Alert triggered
Time: Check timestamp for details

Topic (email subject):

OV10i Inspection Alert - Station 1

4.3 保存 Inject 配置

  1. 为节点命名,如 "Email Trigger"
  2. 点击 "Done" 以保存配置

步骤 5:配置 Email SMTP 设置

5.1 设置 Email Node

  1. Double-click the email node 以打开属性
  2. 配置基本设置
    • Name: "Send Alert Email"(或描述性名称)
    • To: 收件人邮箱地址(例如 quality@company.com

5.2 配置 Gmail SMTP

  1. Server: smtp.gmail.com
  2. Port: 465
  3. 勾选“Use secure connection”
  4. Auth type: Basic
  5. Userid: 您的完整 Gmail 地址(例如 alerts@company.com
  6. Password: 来自步骤 1 的 16 位应用程序密码

5.3 安全设置

  1. 勾选 'Check server certificate is valid' -> 跨国语句中翻译为 “勾选“验证服务器证书是否有效””
  2. 请验证所有设置均已正确输入
  3. 点击 "Done" 以保存 Email Node 配置

Checkpoint: 您的 Email Node 应无错误指示并显示收件人地址。

image.png

步骤 6:测试您的邮件流

6.1 部署与测试

  1. 点击右上角的 'Deploy' 按钮
  2. 等待 'Successfully deployed' 消息
  3. 点击 Inject Node 按钮(左侧的灰色方块)

6.2 验证邮件投递

  1. 检查收件人邮箱中的测试邮件
  2. 如未出现在收件箱,请检查垃圾邮件文件夹
  3. 在 Node-RED 调试面板中查找任何错误信息

6.3 如有需要,故障排除

常见问题:

  • 错误的应用程序密码:重新生成 Gmail 应用程序密码
  • SMTP 设置:请验证服务器和端口是否正确
  • 防火墙:确保允许出站 SMTP 流量

步骤 7:与检测结果的集成

7.1 连接到 Inspection Flow

为基于检测结果发送邮件:

  1. 找到主检测流程(以 All Block Outputs 开头)
  2. 将您的邮件流 作为检测处理的一个分支添加
  3. 在检测逻辑之后连接,但与最终结果并行

7.2 示例集成流

All Block Outputs → [Inspection Logic] → Final Pass/Fail

Format Email → Send Email

image.png

7.3 动态邮件内容

将 inject 节点替换为用于动态内容的函数节点:

// Dynamic email based on inspection results
const result = msg.payload.result ? "PASSED" : "FAILED";
const timestamp = new Date().toLocaleString();
const station = global.get("station_name") || "Unknown Station";

// Set email subject
msg.topic = `Inspection ${result} - ${station}`;

// Set email body
msg.payload = `Inspection Report:
Status: ${result}
Station: ${station}
Time: ${timestamp}
Image: ${msg.payload.image_url || "No image available"}

Please review and take appropriate action.`;

return msg;

第8步:完整流程示例

8.1 导入现成的流程 JSON

您可以导入此完整流程 JSON:

[
{
"id": "email_node_1",
"type": "e-mail",
"name": "Send Inspection Alert",
"server": "smtp.gmail.com",
"port": "465",
"secure": true,
"authtype": "BASIC",
"to": "quality@company.com"
},
{
"id": "format_email",
"type": "function",
"name": "Format Email Content",
"func": "const result = msg.payload.result ? 'PASSED' : 'FAILED';\nmsg.topic = `Inspection ${result}`;\nmsg.payload = `Status: ${result}\\nTime: ${new Date()}`;\nreturn msg;"
}
]

8.2 根据需要进行自定义

  1. 更新贵组织的电子邮件地址
  2. 根据您的具体需求修改电子邮件内容
  3. 调整时机与触发条件
  4. 在投产部署前进行彻底测试

故障排除

常见问题

问题症状解决方案
身份验证失败"Login failed" 错误验证应用程序密码是否正确并且已启用两步验证
连接超时未发送邮件,超时错误检查防火墙设置,验证 SMTP 服务器和端口
邮件被标记为垃圾邮件邮件虽送达但在垃圾邮件文件夹中将发件人添加到安全列表,改进邮件内容
流未触发无调试输出检查流程连接和触发条件

调试您的邮件流程

  1. 在每个步骤后添加调试节点 以跟踪数据
  2. 检查 Node-RED 日志 以获取详细错误信息
  3. 如有需要,使用外部邮件客户端测试 SMTP 设置
  4. 验证从相机到 Gmail 服务器的网络连通性

成功!您的邮件集成已完成

您的 OV10i 相机现在可以:

发送关于检查结果的自动化邮件通知
发送包含检查细节的丰富、格式化消息
支持多收件人及升级工作流
提供定期报告及摘要
基于检查结果处理有条件的消息

最佳实践

邮件管理

  • 使用具有清晰状态指示的描述性主题
  • 保持消息简洁但信息丰富
  • 包含时间戳与工位标识符
  • 在通知中提供可操作的信息

安全性与可靠性

  • 保护应用密码 - 安全存储并定期轮换
  • 为系统通知使用专用邮箱账户
  • 定期测试邮件投递,以确保可靠性
  • 监控投递失败情况,并具备备用通知方法

性能考虑因素

  • 限制邮件发送频率 以避免垃圾邮件检测
  • 为不同告警类型使用合适的收件人名单
  • 对高容量系统实现速率限制
  • 在包含大附件时考虑邮件大小

下一步

在设置邮件通知后:

  1. 为不同类型的告警创建邮件模板
  2. 为各相关方设置分发名单
  3. 为关键问题实施升级工作流
  4. 为管理层创建定期报告
  5. 与其他通知系统集成(SMS、Teams 等)
跳过手动配置

Integration Builder 可以从简单的英文描述生成完整的电子邮件通知流程。请描述您需要的内容(例如“在发现缺陷时发送带有检查图像的邮件”),即可在几秒钟内获得生产就绪的 Node-RED 流。

🔗 相关链接