前回はNode-RedからEmailでお知らせを送ってみました。これでNode-Redのダッシュボードを四六時中見張っていなくてもスマホやパソコンに異常など通知できるというもの。さて今回は逆にスマホやパソコンからEmailを使ってNode-Redに指示を出すために、Node-RedのEmail受信を使ってみます。
※「ブロックを積みながら」投稿順 index はこちら
※動作確認にはRaspberry Pi 3 model B+のRaspberry Pi OS(32bit)上にインストールした以下を使用しています。
-
- Node-RED v2.0.5
node-red-node-email
今回も使用させていただくノードは node-red-node-email です。当方手元の環境では、パレットの管理からインストールが必要なノードです。解説ページが以下に。
以下の左のパレット「ソーシャル」のところに3個並んでいるノードが、node-red-node-emailをインストールすると出現する3ノードです。前回はSMTPサーバーに接続してEmailを送信する「一番下の」emailノードを使ってみましたが、今回はIMAPサーバーに接続してEmailを受信する「真ん中の」emailノードを試用してみます。
なお、一番上のemail MTAというノードはSMTPメール転送エージェントのようです。セキュリティなど無い、ローカルネットワーク内でのテスト用のノードみたいなので、今回は割愛したいと思います。
今回実験のフロー
本来の email(受信用)ノードには、上流への接続などなく、指定の時間インターバルで「自主的に」IMAPサーバーへアクセスし、メールを拾ってくる仕組みです。あまり頻繁にサーバーにアクセスすると無駄なトラフィックが発生して傍迷惑です。デフォルト値ではアクセス間隔300秒と設定されていました。傍迷惑かどうかは別にして、今回はテストなので手動で受信をトリガする設定にしてみました。トリガ時受信設定とすると上手へのポートが現れます。そこに何か msg を流し込めばそれを切っ掛けにメールサーバーへメールを貰いにいってくれるというもの。受信したメールは下流のデバッグノードへそのまま垂れ流しです。こんな感じ。
さて、肝心のemail(受信用)ノードの設定が以下に。例によってメールサーバ等の具体的な設定は隠してます。
実験結果
さて、外部のメーラーから、noderedのメールアカウントへメールを送信した結果が以下に。
メールタイトルをTEST MAIL、本文はHELLO NodeRED!としてみました。上記を見るとちゃんと伝わっているのが分かります。上記ではheader以下は省略してますが、各種ヘッダ情報も取得することが可能であります。
payloadに何かコマンドを載せて遠隔からNode-Redに何かお願いすることはできる(筈)と。