NocoBase のワークフローから HTML メールを送信してみた

NocoBase のワークフローから HTML メールを送信してみた

NocoBase のワークフローから HTML メールを送信してみました。Email Manager の内部 API を使って Gmail から送る方法と、標準のメール送信ノードから Amazon SES の SMTP で送る方法について、Google グループのアドレスを送信元にする設定手順と注意点を紹介します。
2026.10.01

はじめに

NocoBase のワークフローから HTML メールを送信する2つの方法を紹介します。1つは商用プラグイン「Email Manager」の内部 API を呼び出して Gmail から送信する方法、もう1つは標準のメール送信ノードから SMTP サーバーを使って送信する方法です。

今回の検証では、個人のアドレスではなく、Google Workspace で作成した Google グループのアドレス(group@example.com)を送信元にすることを前提としています。個人のアドレスから送信する場合でも、同様の手順で送信できます。

SMTP サーバーには、今回は Amazon SES を使いました。SMTP 接続に対応したサーバーであれば利用できるため、Gmail の SMTP サーバーなども利用可能です。

それでは、順番に見ていきましょう。

Email Manager の内部 API を呼び出して Gmail から送信する

構成と役割分担

Email Manager は、NocoBase 上で Gmail や Outlook のメールを送受信できるようにする商用プラグインです[1]。管理画面からメールを作成・送信する際、Email Manager は内部で mail:messageSend という API を呼び出しています。今回はこの内部 API をワークフローの HTTP リクエストノードから直接呼び出します。

それぞれの役割分担は次のとおりです。

  • HTTP リクエストノード: 宛先・件名・HTML 本文を指定して、内部 API mail:messageSend を呼び出す
  • Email Manager プラグイン: OAuth で接続済みの Gmail アカウントの認証情報を使い、Gmail API 経由でメールを送信する
  • Gmail: 送信元(Send As)に設定された Google グループのアドレスとして宛先へ配信する

事前準備

HTTP リクエストノードを設定する前に、Google Cloud と NocoBase 側で必要な設定を済ませておきます。

1. Google Cloud で OAuth クライアントを作成する

公式ドキュメントの手順に沿って OAuth クライアントを作成します[2]。今回の検証環境では、公式ドキュメントとは異なる次の2点の設定でも問題なく動作しました。

  • OAuth 同意画面: 今回は社内利用のため「内部(Internal)」を選択しました。社内利用などの用途であれば、ドキュメントに記載されている外部公開の手順は不要です。
  • データアクセス(スコープ): Gmail のスコープを個別登録しなくても接続できました。NocoBase が OAuth 認証フローの中で必要なスコープを要求しているためだと考えられます。

2. Google グループのアドレスを Send As に登録する

送信元を個人アドレスではなく Google グループのアドレスにするため、送信に利用する個人アカウント(以降「A さん」)の Gmail 設定で、グループのアドレスを「他のメールアドレス」(Send As)として登録します[3]。個人のアドレスから送信する場合は、この手順は不要です。

Google グループ自体は OAuth 認証に対応していません。そのため、個人アカウントで認証し、そのアカウントの送信元エイリアスとしてグループのアドレスを使います。

3. Gmail アカウントを Email Manager に接続する

A さんの NocoBase アカウントで Email Manager を開き、A さんの Gmail アカウントを OAuth で接続します。続けて Email Manager 側でエイリアスを手動同期し、group@example.com を送信元として選べる状態にします。

4. NocoBase の API キーを発行する

A さんの NocoBase アカウントで API キーを発行します。このキーは、ワークフローの HTTP リクエストノードの Authorization ヘッダーで使用します。

API キーはノードの設定に直接書き込まず、NocoBase の「シークレット」に登録して参照することをおすすめします。

HTTP リクエストノードの設定

事前準備が完了したら、ワークフローに HTTP リクエストノードを追加します。ノードは次のように設定しました。

HTTP リクエストノードで mail:messageSend に POST する設定画面。ヘッダーに Authorization、リクエストボディに送信内容の JSON を指定している

  • URL の 127.0.0.1:80 は、NocoBase 自身のエンドポイントを直接呼び出すためのアドレスです。
  • Authorization ヘッダーには Bearer <A さんの NocoBase API キー> を指定します。

リクエストボディには、送信内容を JSON で指定します。各パラメータの役割は次のとおりです。

項目 内容
accountEmail Email Manager に OAuth で接続した A さんの Gmail アドレス
identityEmail Send As に登録した送信元アドレス
from 受信者に表示する送信元アドレス
to 宛先の配列
subject 件名
body HTML 形式の本文
isDraft false で即時送信(true の場合は下書き保存)

body には HTML 文字列をそのまま記述できます。氏名や日付などの動的な値には、前段のノードが出力した変数を埋め込めます。

注意点とハマったポイント

運用するうえでは、次の点に注意が必要です。

  • 初回同期時のクォータ制限: Gmail アカウントを接続した直後は既存メールの同期処理が走るため、Gmail API のユーザー単位の使用制限(クォータ)に達しやすくなります[4]。メールの件数が多いアカウントでは特に注意してください。
  • 個人アカウントへの依存: 送信処理が A さん個人の Google アカウントと OAuth 接続に依存します。退職や権限変更でアカウントが無効になると、ワークフローからの送信も停止します。

SMTP サーバーを使って送信する

構成と役割分担

NocoBase 標準のメール送信ノードから SMTP サーバーへ接続して送信します。今回は Amazon SES の SMTP エンドポイントを利用しましたが、メール送信ノードに設定する SMTP サーバーを変更すれば、Gmail の SMTP サーバーなども利用可能です。

それぞれの役割分担は次のとおりです。

  • メール送信ノード: 宛先・件名・HTML 本文を指定して、SES へ SMTP で接続して送信する
  • Amazon SES: 事前検証済みの ID(group@example.com)を送信元としてメールを配信する
  • Google グループ: 送信元と返信先(Reply-To)のアドレスとして使う

宛先からの返信は Google グループで受信する想定です。なお、宛先からの返信がグループに正常に届くかの動作検証は、今回は実施していません。

事前準備: SES の設定と SMTP 認証情報の発行

Amazon SES 側で、次の準備をします。

  1. SES コンソールで group@example.com を Email Identity として登録し、所有権を検証する
  2. SES アカウントがサンドボックス環境の場合は、本番アクセスを申請する
  3. SES コンソールから SMTP 認証情報を発行する

SMTP 認証情報を発行すると、SMTP 専用の IAM ユーザーが自動で作成されます。SMTP パスワードは、IAM のシークレットアクセスキーとは別の値です[5]。

送信元 IP アドレスで SMTP ユーザーを制限する(推奨設計)

万が一 SMTP 認証情報が漏えいした場合に備えて、送信元 IP アドレスを制限しておくと安心です。ECS Fargate からの通信を NAT Gateway 経由にして Elastic IP で送信元を固定し、SMTP ユーザーの IAM ポリシーでその IP アドレスからの送信だけを許可します。

SES は IAM の条件キー aws:SourceIp に対応しています。また、SMTP での送信には ses:SendRawEmail 権限が使われます[6]。

SMTP ユーザーに追加するポリシーの例
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenySendFromOutsideNatIp",
      "Effect": "Deny",
      "Action": ["ses:SendEmail", "ses:SendRawEmail"],
      "Resource": "*",
      "Condition": {
        "NotIpAddress": {
          "aws:SourceIp": "Elastic_IP"
        }
      }
    }
  ]
}

メール送信ノードの設定

ワークフローにメール送信ノードを追加し、SES の接続情報を設定します。メール送信ノードはコミュニティ版(オープンソース版)でも利用でき、テキスト形式と HTML 形式の両方に対応しています[7]。

SMTP ホスト: email-smtp.<リージョン>.amazonaws.com
ポート: 587(STARTTLS)または 465(TLS Wrapper)
ユーザー名: <SES の SMTP ユーザー名>
パスワード: <SES の SMTP パスワード>
From: group@example.com
  • SES の SMTP エンドポイントへの接続には TLS が必須です。STARTTLS ならポート 25 / 587 / 2587、TLS Wrapper ならポート 465 / 2465 を使用します[8]。
  • SMTP のユーザー名とパスワードは、API キーと同様に NocoBase のシークレットに保存して参照します。
  • 送信先(To)には宛先のメールアドレスを指定し、本文形式には「HTML」を選択します。前段のノードが出力した変数を使えば、宛先や本文を動的に設定できます。

本番運用に向けた考慮点(SES の場合)

SES を本番環境で運用する場合は、次の準備や対策が必要です。

  • 送信ドメイン認証(DNS 設定): 送信元ドメインの DNS に SES 用のレコード(Easy DKIM など)を追加し、SPF / DKIM / DMARC の認証をパスできるようにします。
  • 送信元 IP の固定: ECS タスクをプライベートサブネットに配置し、NAT Gateway 経由で IP アドレスを固定したうえで、前述の IAM ポリシーによるアクセス制限を適用します。
  • 配信結果の記録と監視:
    • サプレッションリスト: アカウントレベルのサプレッションリストを有効化し、バウンスや苦情が発生した宛先への再送信を自動で停止します。
    • イベントログの収集: SES のイベントを Amazon EventBridge 経由で CloudWatch Logs に転送し、1通ごとの配信結果を追えるようにします。
    • メトリクス監視: CloudWatch メトリクスでバウンス率や苦情率を監視し、アカウントの評価低下を早期に検知します。

まとめ

今回は、NocoBase のワークフローから HTML メールを送信する方法として、Email Manager プラグインの内部 API を利用する方法と、SMTP サーバーを利用する方法の2つを紹介しました。

それぞれの特徴と選び方の目安は次のとおりです。

  • Email Manager の内部 API: プラグインを導入済みであれば手軽に構築できます。一方で、非公開 API の利用に伴う運用上のリスクがあります。環境の更新頻度が低く、小規模な用途に適しています。
  • SMTP サーバー: 標準のメール送信ノードだけで完結します。SMTP サーバーの設定を変更できるため、要件に応じて Gmail の SMTP サーバーなども利用可能です。

利用環境のセキュリティ要件や運用体制に合わせて、適した送信方法を選択してください。

本ブログが、NocoBase のワークフローから HTML メールを送りたい方の参考になれば幸いです。


クラスメソッドオペレーションズ株式会社について

クラスメソッドグループのオペレーション企業です。

運用・保守開発・サポート・情シス・バックオフィスの専門チームが、IT・AIをフル活用した「しくみ」を通じて、お客様の業務代行から課題解決や高付加価値サービスまでを提供するエキスパート集団です。

当社は様々な職種でメンバーを募集しています。

「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、クラスメソッドオペレーションズ株式会社 コーポレートサイト をぜひご覧ください。※2026年1月 アノテーション㈱から社名変更しました

脚注
  1. メール管理 - NocoBase Documentation(2026年9月28日参照) ↩︎

  2. Google の設定 - NocoBase Documentation(2026年9月28日参照) ↩︎

  3. Gmail でグループをメールアドレスとして追加する - Google グループ ヘルプ(2026年9月28日参照) ↩︎

  4. 使用制限 | Gmail | Google for Developers(2026年9月28日参照) ↩︎

  5. Obtaining Amazon SES SMTP credentials - Amazon Simple Email Service(2026年10月1日参照) ↩︎

  6. Identity and access management in Amazon SES - Amazon Simple Email Service(2026年9月30日参照) ↩︎

  7. メール送信 - NocoBase Documentation(2026年9月28日参照) ↩︎

  8. Connecting to an Amazon SES SMTP endpoint - Amazon Simple Email Service(2026年9月28日参照) ↩︎

この記事をシェアする

関連記事