Contents
Node-REDからGmailを送信
1.概要
Node-REDのemailノードを使用しますと、簡単にemailを送ることができます。
このメール送信機能のIoTへの展開として、測定値がある閾値を超えるもしくは割った場合に、アラームとしてメールを関係者に送信するシステムを構築することが考えられます。
ここでは、emailノードを使ってgmailを送信する方法を説明したいと思います。
gmail にNode-REDからメールを送信するためには「アプリパスワード」が必要になります。「5.アプリパスワードの取得方法」を参考にして取得してください。
2.仕様
以下のような簡単な仕様のメール送信システムを作ります。
・injectノードを押すとgmailで送信する。
・送信内容は、「現在は、2022年12月10日 09時34分32秒です。」というような日時の情報を送信する。
3.送信実験結果
① injectノードを押すとgmailで送信します。
② スマートフォンのgmailアドレスに日時が送られてきました。
4. メール送信フローの実装
この章では、「3. 送信実験結果」で示したNode-REDのフローの実装方法を説明します。
4-1.メールの送信ボタンの設置
送信ボタンとしてinjectノードを配置します。
① injectノードを配置し、ダブルクリックしてプロパティ画面を表示します。
② 名前を入力します。
③ 「完了」を押します。
4-2. 日付のフォーマットの変更
Date/Time Formatterノードを配置します。
① Date/Time Formatterノードを配置し、injectノードと接続します。そして、ダブルクリックしてプロパティ画面を表示します。
② “Input from”を“msg.payload” にします。
③ “Output Format”を「YYYY年MM月DD日 HH時mm分ss秒」とします。
④ “Output from”を“msg.payload”にします。
⑤ 名前を入力します。
⑥ 「完了」を押します。
4-3. メール送信文を作成
Templateノードの配置します。Templateノードを使用することで、“msg.payload”や”flow“などの変数を簡単に埋め込めます。
① Templateノードを配置し、 Date/Time Formatterノードと接続します。そして、ダブルクリックしてプロパティ画面を表示します。
② 名前を入力します。
③ テンプレートの部分にメールの主文を入れます。ここでは「現在は{{payload}}です。」としています。
{{payload.adc0.val}}や{{flow.thresholdNo6}}のように変数を二重の{}でくくると値を引用できます。
④ 「完了」を押します。
4-4. メールの件名と送信先アドレスの設定
changeノードを配置します。メールの件名は、”msg.topic”に設定します。送信先アドレスは、”msg.to”に設定します。
emailノードでそれぞれ使用されます。
① changeノードを配置し、Templateノードと接続します。そして、ダブルクリックしてプロパティ画面を表示します。
② 名前を入力します。
③ 値の代入先を“msg.topic”にします。
④ “msg.topic”に代入する値を“日時情報”とします。これがメールの件名になります。
⑤ 「追加」を押して、条件を1つ追加します。
⑥ 値の代入先を“msg.to”にします。
⑦ “msg.to”に代入する値は、gmailの送信先アドレスです。
⑧ 「完了」を押します。
4-5. メールの送信内容の確認準備
debugノードを使って、メールの送信内容を確認の準備をします。
① debugノードを配置し、changeノードと接続します。そして、ダブルクリックして、プロパティ画面を開きます。
② 左端のメッセージメニューの▼を押して、「msgオブジェクト全体」を選びます。
③ 「完了」を押します。
4-6. メールの送信文の確認
メールの送信内容を確認します。
① デプロイします。
② injectノードの左横に付いているボタンを押します。
③ debug画面に表示された内容を確認します。以下の様になっているか確認してください。
a) payload: “現在は 2022年12月10日 06時40分38秒 です。“ ← 日時が表示されている
b) topic: “日時情報“ ← 件名が表示されている
c) to: “(メールアドレス)@gmail.com” ← メールアドレスが正しく表示されている
4-7. メール送信の設定
メールの送信設定を行います。gmail送信のために、アプリパスワードの取得が必要です。「5.アプリパスワードの取得方法」を参照してアプリパスワードを入手してください。
① emailノードを配置し、changeノードと接続します。その後、ダブルクリックしてプロパティを開きます。
② 宛先は空欄でOKです。“msg.to”の内容が入ります。
③ アプリパスワードを取得した際のアカウントのgmailアドレスを入力して下さい。
④ 取得したアプリパスワードを入力します。
⑤ 名前を入力します。
⑥ 最後に「完了」ボタンを押します。
4-8. メール送信の実験
メールの送信実験を行います。
① 「デプロイ」を行います。
② 送信ボタンを押します。
③ 送信先のgmailアドレスにメールが送られたか確認してください。
④ デバッグ画面の日時とgmailに届いたメールの日時が同じか確認してください。
5.アプリパスワードの取得方法
・Node-REDからgmail経由でemailを発信する際に、gmailのアカウントとパスワードの他に、アプリパスワードが必要になります。
・アプリパスワードを使うと、2段階認証プロセスに対応していないアプリからGoolge アカウントにログインできるようになります。
・Node-REDは、2段階認証プロセスに対応していませんので、アプリパスワードを取得して、Googleアカウントにログインして、gmail経由でemailノードからメールを送信します。
5-1.Google アカウントにログイン
5-2.“アプリパスワード”をクリックして、再ログイン
5-3.“アプリパスワード”の生成