コンテンツにスキップ

e-mailノード(メール送信)

e-mailノード

概要

e-mailノードは、SMTPサーバーを利用してメールを送信するためのノードです。

通常は「メール送信ノード」をご利用ください

ロボシュタインには、メール送信を行うための専用ノードとしてメール送信ノード(パレット上の表示は「RS メール送信」)が用意されています。
通常の通知メール送信や添付ファイル付きメール送信を行う場合は、まずロボシュタイン専用の「メール送信ノード」の利用を推奨します。

一方で、以下のような場合は、本ページで説明するe-mailノードの利用を検討してください。

  • 任意のSMTPサーバーを直接指定して送信したい場合
  • SMTPサーバー、ポート、認証方式、TLS設定などを細かく指定したい場合
  • Basic認証、XOAuth2認証、認証なしなど、SMTP接続方式を個別に設定したい場合

ロボシュタイン専用ノードで実現できる通常の送信用途であれば、設定や運用が分かりやすい専用ノードを使用してください。

e-mailノード設定画面

具体的な活用例(SMTPサーバーを指定してメールを送信する)

外部SMTPサーバーを利用して、フロー内で作成した本文をメール送信する例です。

フローのイメージ図

e-mailノードのフローイメージ

① 前段ノードでメール本文を作成する

templateノードやfunctionノードで、送信するメール本文を作成します。

例えば、templateノードで以下のような本文を作成します。

アラートを検知しました。
対象サーバー:server01
状態:CRITICAL

この本文を msg.payload に設定して、e-mailノードへ渡します。

② e-mailノードで送信先とSMTP情報を設定する

e-mailノードでは、宛先、SMTPサーバー、ポート、認証情報などを設定します。

例:

  • 宛先:example@example.com
  • サーバ:smtp.example.com
  • ポート:465
  • Auth type:Basic

③ メールを送信する

e-mailノードにメッセージが渡されると、設定したSMTPサーバーを利用してメールが送信されます。

設定項目一覧

必須 項目名 説明
名前 フローエディター上で表示されるノード名を任意で指定できます。
宛先 メールの送信先を指定します。空欄の場合は msg.to を使用します。
◯ サーバ メール送信に使用するSMTPサーバーを指定します。
◯ ポート SMTPサーバーのポート番号を指定します。
安全な接続を使用 SMTPサーバーとSSL/TLSで接続する場合にチェックします。
◯ Auth type 認証方式を「Basic」「XOAuth2」「None」から選択します。
ユーザID SMTP認証に使用するユーザーIDを指定します。
パスワード SMTP認証に使用するパスワードを指定します(Auth typeがBasicの場合)。
Token アクセストークンが格納されている msg のプロパティを指定します(Auth typeがXOAuth2の場合)。
TLSオプション 「チェックサーバ証明書は有効です」にチェックを入れると、SMTPサーバーの証明書を検証します。

宛先について

宛先には、メールの送信先アドレスを指定します。 ノード設定画面で宛先を固定することもできますし、前段のノードで msg.to を設定して送信先を動的に変更することもできます。

ノード設定で宛先を固定する場合

宛先:example@example.com

この場合、e-mailノードに渡されたメッセージは、設定した宛先へ送信されます。

msgで宛先を指定する場合

前段のchangeノードやfunctionノードで、msg.to を設定します。 functionノードの場合は以下のように記述します。

msg.to = "example@example.com";
return msg;

ただし、ノード設定画面に宛先が設定されている場合、msg.to よりもノード設定側の宛先が優先されます。 宛先をフロー内で動的に変えたい場合は、ノード設定画面の宛先を空にし、msg.to を使用してください。

サーバとポートについて

サーバとポートには、メール送信に使用するSMTPサーバーの情報を指定します。

例:

  • サーバ:smtp.example.com
  • ポート:465

利用するメールサービスやSMTPサーバーによって、サーバー名、ポート番号、安全な接続の要否が異なります。 設定する際は、利用するメールサーバー側のSMTP設定を確認してください。

認証方式(Auth type)について

e-mailノードでは、以下の認証方式を選択できます。

Auth type 内容
Basic ユーザIDとパスワードを使用してSMTP認証を行います。
XOAuth2 OAuth2のアクセストークンを使用してSMTP認証を行います。
None 認証なしでSMTPサーバーへ接続します。

通常は、SMTPサーバーの要件に合わせてBasicまたはXOAuth2を使用します。 認証なしで利用できるSMTPサーバーは限られるため、Noneを使用する場合は、利用環境やセキュリティ要件を確認してください。

メール本文について

送信するメール本文は、msg.payload に設定します。

テキストメールの例

msg.to = "example@example.com";
msg.topic = "アラート通知";
msg.payload = "サーバーでアラートを検知しました。";
return msg;

この場合、msg.payload の内容がメール本文として送信されます。

HTMLメールの例

msg.payload にHTMLタグを含む文字列を設定すると、HTML本文として送信されます。

msg.to = "example@example.com";
msg.topic = "アラート通知";
msg.payload = "<h1>アラート通知</h1><p>サーバーで異常を検知しました。</p>";
return msg;

HTMLメールでは、msg.plaintext を設定すると、HTMLを表示できないメールソフト向けのテキスト本文を別に指定できます。 HTML形式で送信する場合は、受信側の表示やセキュリティポリシーも考慮してください。

件名について

メール件名は、msg.topic に設定します。

msg.topic = "アラート通知";

msg.topic がない場合は msg.title が使用され、どちらも設定されていない場合は「Message from Node-RED」という件名になります。 通常は、前段のchangeノードやfunctionノードで msg.topic を設定してからe-mailノードへ渡してください。

送信元について

送信元には、通常、ユーザIDに設定した値が使用されます。 前段のノードで msg.from を設定すると、送信元として使用できます。

msg.from = "sender@example.com";

ただし、SMTPサーバー側の設定によっては、認証ユーザーと異なる送信元アドレスでの送信が許可されない場合があります。 送信元を変更したい場合は、メールサーバー側で許可されているか確認してください。

Cc、Bcc、Reply-Toについて

ノード設定画面の宛先を空にしている場合、msg.cc、msg.bcc、msg.replyTo などを使用できます。 ノード設定画面に宛先を設定している場合、これらの値は使用されません。

msg.to = "to@example.com";
msg.cc = "cc@example.com";
msg.bcc = "bcc@example.com";
msg.replyTo = "reply@example.com";
return msg;

複数宛先を指定する場合は、カンマ区切りで指定します。

msg.to = "user1@example.com,user2@example.com";

添付ファイルについて

e-mailノードでは、msg.attachments を使用して添付ファイルを指定できます。

添付ファイルを1つ指定する例

msg.to = "example@example.com";
msg.topic = "ファイル送付";
msg.payload = "ファイルを添付します。";
msg.attachments = [
    {
        filename: "report.txt",
        content: "添付ファイルの内容です。"
    }
];
return msg;

content には、文字列またはバイナリデータ(バッファ)を指定します。

バイナリデータを添付する場合

msg.payload がバイナリデータ(バッファ)の場合、msg.payload は本文ではなく添付ファイルとして送信されます。 このとき、msg.filename を設定しておくと、添付ファイル名を指定できます。本文は msg.description で指定できます。

msg.filename = "report.pdf";

利用例

例1:固定宛先へ通知メールを送信する

固定の担当者宛に通知メールを送信する例です。

例1:固定宛先へ通知メールを送信する

e-mailノード側で宛先、サーバ、ポート、認証情報を設定します。 前段のtemplateノードでは、通知本文を msg.payload に設定します。

例2:宛先を動的に変更して送信する

前段のfunctionノードで宛先を設定し、送信先を切り替える例です。e-mailノードの宛先は空欄にしておきます。

例2:宛先を動的に変更して送信する

msg.to = "operator@example.com";
msg.topic = "ロボシュタイン通知";
msg.payload = "処理が完了しました。";
return msg;

このようにすると、フロー内の条件に応じて送信先を変更できます。

例3:HTMLメールを送信する

HTML形式の本文を送信する例です。

例3:HTMLメールを送信する

msg.to = "example@example.com";
msg.topic = "HTML通知";
msg.payload = "<p>処理が完了しました。</p>";
return msg;

例4:添付ファイル付きメールを送信する

ファイル内容を添付して送信する例です。

例4:添付ファイル付きメールを送信する

msg.to = "example@example.com";
msg.topic = "レポート送付";
msg.payload = "レポートを添付します。";
msg.attachments = [
    {
        filename: "report.txt",
        content: "レポート本文"
    }
];
return msg;

注意点

通常用途ではロボシュタイン専用ノードを優先する

ロボシュタインには、メール送信を行うための専用ノードが用意されています。 通常の通知メール送信や、ロボシュタイン上で管理された送信元アドレスを使った送信では、専用ノードの利用を推奨します。 e-mailノードは、SMTPサーバーや認証方式を直接指定したい場合など、標準ノードとしての細かい設定が必要な場合に利用してください。

SMTPサーバーの設定を確認する

e-mailノードでは、SMTPサーバー、ポート、安全な接続、TLS、認証情報を直接設定します。 設定が誤っているとメール送信に失敗します。 利用するメールサービスや社内SMTPサーバーの設定情報を確認したうえで設定してください。

宛先の優先順位に注意する

ノード設定画面に宛先が設定されている場合、msg.to を設定してもノード設定画面の宛先が優先されます。 宛先を動的に変更したい場合は、ノード設定画面の宛先を空にしてください。

msg.payload が必要

e-mailノードは、msg.payload の内容を本文として送信します。 msg.payload がない場合、メールは送信されず、「送信するペイロードがありません」という警告が表示されます。

HTML本文の扱いに注意する

msg.payload にHTMLタグを含む文字列を設定すると、HTML本文として扱われます。 HTMLメールを送信する場合は、意図しないHTMLタグやスクリプトが含まれないよう注意してください。

添付ファイルの形式に注意する

添付ファイルを指定する場合、msg.attachments の形式や、content の形式に注意してください。 content には、文字列またはバイナリデータを使用します。それ以外の形式を渡すと、「不正な添付コンテンツ」というエラーになり、メールは送信されません。

認証情報の取り扱いに注意する

SMTPのユーザーID、パスワード、OAuth2トークンなどは機密情報です。 debugノードで表示したり、画面キャプチャやマニュアルに掲載したりする場合は、必ずマスキングしてください。

送信失敗時のエラー処理を用意する

SMTPサーバーへの接続失敗、認証失敗、宛先不正、添付ファイル不正などでメール送信に失敗する場合があります。 必要に応じて、catchノードを組み合わせて、送信失敗時の通知やログ出力を行ってください。

関連ノード

  • メール送信ノード:ロボシュタイン専用のメール送信ノードです。通常のメール送信ではこちらの利用を推奨します。
  • templateノード:メール本文を作成する場合に使用します。
  • changeノード:msg.to、msg.topic、msg.payload などを設定する場合に使用します。
  • functionノード:宛先や本文、添付ファイルを動的に作成する場合に使用します。
  • switchノード:条件に応じて送信先や送信内容を分岐する場合に使用します。
  • catchノード:メール送信失敗時のエラーを検知する場合に使用します。
  • debugノード:送信前の msg.to、msg.topic、msg.payload を確認する場合に使用します。

まとめ

e-mailノードは、SMTPサーバーを利用してメールを送信するための標準ノードです。

SMTPサーバー、ポート、安全な接続、認証方式、TLS設定などを直接指定できるため、メール送信環境を細かく制御したい場合に利用できます。

一方で、ロボシュタインにはメール送信専用ノードが用意されています。 通常の通知メール送信や、ロボシュタイン上で管理された送信元アドレスを利用する場合は、専用ノードの利用を推奨します。

e-mailノードは、任意のSMTPサーバーを直接指定したい場合や、標準ノードとしてSMTP接続設定を細かく行いたい場合に利用してください。