У меня есть два потока, использующих узел node-red-node-email
в Node-RED.
Первый использует предопределенное значение для получения всех писем (Критерии: Все). Он работает правильно и получает два электронных письма, которые у меня есть в моем почтовом ящике:
Второй должен имитировать то же самое, но с указанием msg.criteria
:
Я создал поток с узлом change
, устанавливающим значение.
Информационная страница для модуля электронной почты ссылается на doc для другого модуля и не дает четкого примера, но я предположил, что должен добавить строковое значение [ ALL ]
. Вот соответствующая часть модуля change
:
"rules": [
{
"t": "set",
"p": "criteria",
"pt": "msg",
"to": "[ 'ALL' ]",
"tot": "str"
}
В результате узел электронной почты изменяется на connecting
, затем на fetching
и остается в этом состоянии. Веб-сервер Node-RED некоторое время не отвечает.
Я также попытался указать 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
и какие данные он должен содержать для получения всех писем (и, соответственно, других критериев)?
msg.criteria
будет строкой, а не JSON. Попробуйте использовать `['UNSEEN']` вместо[ 'ALL' ]
, тогда он должен просто возвращать новую почту, а не весь ваш почтовый ящик (который может быть огромным). - person hardillb   schedule 10.02.2020msg.criteria
в моем первом примере была строкой, которая не сработала. Я использовал[ALL]
здесь, чтобы избежать комментариев о[UNSEEN]
получении только непрочитанных сообщений. Как вы можете видеть на первом скриншоте, в моем почтовом ящике есть два письма, так что это не проблема. Они выбираются с полем Criteria, установленным в All, но не выбираются с Criteria, установленным в - set from msg.criteria - иmsg.criteria
, установленным в['ALL']
. - person Ionardi   schedule 15.02.2020msg.criteria
должен быть массивом JSON (бит, в котором внутренние версии преобразуются из строки в массив, очень тонкий). Проблема, которую вы видели, также очень тонкая и связана с типами кавычек в узле изменений. - person hardillb   schedule 15.02.2020