USB CAMERAノードをhttp requestにしたらメール添付の画像が送れなくなった件(Node-RED)

以前の記事で、OpenBlocksにUSBカメラ―の画像を添付するNode-REDフローを、http requestノードで送る方法を解説しました。 

そのままメール送信ノードに宛先を入力した状態であれば問題ないのですが、メール宛先や本文などをmsg.toやmsg.discriptionなどで送ろうとするとうまく動かない症状が発生しました。

具体的にうまく動かない症状は

1.画像ファイルが添付されない

2.メール本文が空になる

というものでした。

USB CAMERAで遅れてhttp requestで送れない原因

USB CAMERAから出力されるPayloadとhttp requestで出力されるPayloadを比較したところ、

http requestの方は上記のheadersをはじめ、USB CAMERAからは出力されないいくつかのデータがあることがわかりました。

どうやらいくつかの余計なmsgがあるとうまく動かないようです。

解決方法

解決方法はhttp requestノード(上図ではUSB CAMERAという名前)から出力されるメッセージをfunctionノードで削除しました。

具体的には画像のデータとしてmsg.payloadにbufferが入るので、それだけを残し、全体のメッセージはnewMsgという新しいmsgオブジェクトを作成する方法です。

動作確認

この方法で検証、無事にUSB CAMERAノードで作成していたフローと同じように、添付画像ファイル+本文+題名で送ることができました。

まとめ

以上、「USB CAMERAノードをhttp requestにしたらメール添付の画像が送れなくなった件(Node-RED)」についてご紹介しました。

OpenBlocksを使ったNode-REDを使ったアプリケーションの開発、サポートなどお話がありましたら、ぜひ、気軽に声をかけてください。