首页 > 解决方案 > 在 msg.criteria 中放入什么来获取 Node-RED 电子邮件节点中的电子邮件?

问题描述

我有两个使用node-red-node-emailNode-RED 中的节点的流程。

第一个使用预定义的值来获取所有电子邮件(Criteria : All)。它可以正常工作并获取我在收件箱中的两封电子邮件:

流 1

第二个应该模仿相同的,但通过指定msg.criteria

我创建了一个带有change设置值的节点的流。

电子邮件模块的信息页面指的是另一个模块的文档页面,并没有给出明确的示例,但我假设我应该添加一个字符串值[ ALL ]. 这是模块的相关部分change

"rules": [
    {
        "t": "set",
        "p": "criteria",
        "pt": "msg",
        "to": "[ 'ALL' ]",
        "tot": "str"
    }

结果,电子邮件节点更改为connectingthen tofetching并保持在此状态。Node-RED Web 服务器有一段时间没有响应。

流 2

我还尝试通过msg.criteria以下方式指定为 JSON 对象(结果我得到了"Invalid 'to' JSON property"调试):

"rules": [
    {
        "t": "set",
        "p": "criteria",
        "pt": "msg",
        "to": "[ 'ALL' ]",
        "tot": "json"
    }
],

或以下方式(结果我根本没有响应;电子邮件节点甚至没有进入connecting状态):

"rules": [
    {
        "t": "set",
        "p": "criteria",
        "pt": "msg",
        "to": "{ [ 'ALL' ] }",
        "tot": "json"
    }
],

应该是什么类型msg.criteria以及它应该包含什么数据来获取所有电子邮件(以及扩展其他标准)?

标签: node-red

解决方案


正如我在第二条评论中提到的,这很可能与您如何使用 JSON 数组设置更改节点有关。

以下更改节点配置按预期工作。

在此处输入图像描述

请注意,它ALL是用双引号括起来的,而不是单引号。这很重要,因为在设置单引号并且实际上并未将字段添加到msg对象时,Change 节点会引发错误。


推荐阅读