在 msg.criteria 中放入什么以在 Node-RED 电子邮件节点中获取电子邮件?

What to put in msg.criteria for fetching emails in Node-RED email node?

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

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

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

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

电子邮件模块的信息页面引用了 doc page for another module 并且没有给出明确的示例,但我假设我应该添加一个 [ ALL ] 的字符串值。这是 change 模块的相关部分:

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

结果,电子邮件节点更改为 connecting,然后更改为 fetching,并保持此状态。 Node-RED Web 服务器暂时没有响应。

我还尝试通过以下方式将 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 应该是什么类型以及它应该包含什么数据来获取所有电子邮件(以及扩展其他标准)?

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

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

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