Mail API

HTTP API 経由のトランザクションメール: Brevo、Mailgun、Mailjet、Maileroo、Postmark、Mailchimp、Resend、SendGrid、MailerSend、Scaleway。

プラグイン

Mail API

HTTP API 経由のトランザクションメール: Brevo、Mailgun、Mailjet、Maileroo、Postmark、Mailchimp、Resend、SendGrid、MailerSend、Scaleway。

  • カテゴリー: email
  • ステータス: 利用可能
  • バージョン: 0.3.1
  • 価格: 不明
  • 提供元: 公式プラグインレジストリ
  • 導入方法: レジストリのサンドボックスプラグイン
  • 確認日: 2026-10-21

説明

Mail API は、メールプロバイダーの HTTP API を EmDash のメール送信手段にします。サインインリンク、招待、プラグインのメールは、SMTP サーバーなしで Brevo、Mailgun、Postmark などのサービスを通じて送信されます。

機能

  • 10 のプロバイダー: Brevo、Mailgun、Mailjet、Maileroo、Postmark、Mailchimp Transactional(Mandrill)、Resend、SendGrid、MailerSend、Scaleway TEM。
  • 認証済みの送信元: プロバイダーで認証済みのアドレスまたはドメインを選ぶか、手入力できます。
  • アカウントの状態: プラン、クレジット、クォータ、評価を、プロバイダーの API から取得します。
  • 対処しやすいエラー: プロバイダー自身のメッセージに、HTTP ステータス、エラーコード、ヒント、解決方法のページへのリンク、生のレスポンスを添えて表示します。
  • 再試行キュー: プロバイダーが停止しているときやレート制限のときは、メールが暗号化されたキューで待機し、間隔を延ばしながら再送されます。
  • 履歴とログ: すべての送信について、ステータス、メッセージ ID、試行回数、所要時間を記録し、フィルター、再送、14 日間のグラフ、ダッシュボードウィジェットを備えています。
  • 各プロバイダーのページにテストフォームがあります。
  • 暗号化: API キーは EmDash のシークレットとして保存され、保持するメール本文は暗号化され、サインインメールは保持されません。
  • 管理画面は英語、フランス語、ドイツ語に対応し、スマートフォンでも使えます。

プロバイダー

プロバイダー認証情報一覧表示できる送信元アカウントの状態
BrevoAPI キーアドレスプラン、クレジット
MailgunAPI キー、ドメイン、リージョンドメインドメインの状態
MailjetAPI キー、シークレットキーアドレス、ドメインなし
Maileroo送信キーなしなし
Postmarkサーバートークンなしサーバー、モード
Mailchimp TransactionalMandrill キードメイン評価、クォータ
ResendAPI キードメインプラン、クォータ
SendGridAPI キーアドレス、ドメインプラン、クレジット
MailerSendAPI トークンアドレス、ドメインAPI クォータ
Scaleway TEMシークレットキー、プロジェクト IDドメインプラン、使用量

送信元が一覧表示されないプロバイダーでは、アドレスを手入力してください。

インストール

要件

  • プラグインのサンドボックスランナーを備えた EmDash 1.3.0 以降: Cloudflare Worker Loader(Workers Paid プラン)、または Node.js 上の @emdash-cms/sandbox-workerd。
  • サイトに EMDASH_ENCRYPTION_KEY が必要です。API キーの暗号化に使われます。npx emdash secrets generate で作成し、Cloudflare では wrangler secret put EMDASH_ENCRYPTION_KEY で保存してください。コピーをシークレットマネージャーに保管してください。これがないと、データベースのバックアップは役に立ちません。
  • 再試行キュー用のスケジューラー: Node.js では組み込みです。Cloudflare では * * * * * の cron トリガーと scheduled ハンドラーが必要です(EmDash のテンプレートには両方含まれています)。
  • 対応プロバイダーのいずれかのアカウントと API キー。

インストール方法

  1. プラグインレジストリから Mail API をインストールします。
  2. 権限を確認して承認します。許可されるのは、プロバイダーの API ホストへのリクエストと、EmDash のメールの配信のみです。

npm からインストールする場合: pnpm add @devbitme/emdash-plugin-apimail を実行し、astro.config.mjs の emdash() インテグレーション内の sandboxed: [...] にデフォルトインポートを追加します。

セットアップ

  1. 管理画面で Mail API を開き、使用するプロバイダーの Configure を選びます。
  2. キーを貼り付けて保存します。Account セクションで、キーが動作することを確認できます。
  3. Send a test email で認証済みの送信元を選び、自分のアドレスを入力して送信します。その送信元を保持するには、Use as the default sender をオンのままにします。
  4. 一覧のプロバイダーのカードで Activate をクリックします。
  5. 複数のメール送信手段がインストールされている場合は、Settings → Email で Mail API を選びます。astro dev では、EmDash のコンソール送信手段もその 1 つに数えられます。

設定

Queue & history タブでは、メールがキューで待機できる時間(既定ではサインインメールが 15 分、それ以外が 24 時間)、メール本文を保持するかどうか、履歴とログの保存期間(既定では 30 日)を設定します。

完全なドキュメント: https://git.devbit.me/devbit.me/emdash-plugin-apimail

よくある質問

SMTP サーバーは必要ですか?

いいえ。Mail API は HTTPS でプロバイダーの HTTP API を呼び出すため、Cloudflare Workers のように SMTP が使えない環境でも動作します。

EmDash の「Send test email」では「Failed to send test email」としか表示されません。

プロバイダーのページにある Send a test email フォームを使ってください。プロバイダーのメッセージ、ヒント、生のレスポンスが表示されます。エラーは Logs とサーバーログにも記録されます。

送信元の一覧が空、または HTTP 401 や 403 が表示されます。

そのキーは送信はできますが、送信元の一覧取得はできません。Resend には Full access キー、SendGrid には Sender Authentication と User Account の読み取りアクセス、MailerSend には Domains と Sender identity、Scaleway には TransactionalEmailReadOnly が必要です。Mailgun ではドメインの送信キーではなくアカウントキーが必要です。送信元のアドレスは引き続き手入力できます。

エラーで IP アドレスが許可されていないと表示されます。

ホストの送信元 IP をプロバイダーの許可リストに追加するか、制限をオフにしてください。エラーには、該当するページへのリンクが表示されます。

プロバイダーが停止しているときはどうなりますか?

ネットワークエラー、タイムアウト、HTTP 429 と 5xx の場合、メールは暗号化されたキューに入ります。1 分、5 分、15 分、30 分後、続いて 1 時間、2 時間、その後は 4 時間ごとに、その時点で有効なプロバイダーを通じて再試行されます。サインインメールは 15 分後、それ以外のメールは 24 時間後に期限切れになります。無効なキーや拒否された受信者などの恒久的なエラーは再試行されません。

キューが動作しません。

Mail API の Security タブを開いてください。スケジュールされたタスクが一覧表示され、Repair ボタンがあります。Cloudflare では、cron トリガーと scheduled ハンドラーを確認してください。

メールの内容は保存されますか?

キューで待機している間のみ、または Keep email content in the history をオンにした場合は履歴に保存されます。どちらの場合も暗号化されます。サインインメールと招待メールは、送信後は保持されません。

複数のプロバイダーを使えますか?

はい。複数を設定し、送信に使うものの Activate をクリックします。障害が発生したときは別のプロバイダーを有効にすると、キュー内のメールがそのプロバイダーを通じて再送されます。

セキュリティ

脆弱性の報告

[email protected] にメールしてください。先に公開 issue を作成しないでください。

権限

  • ネットワークリクエスト: プロバイダーの API ホストのみに限定されます。api.brevo.com、api.mailgun.net、api.eu.mailgun.net、api.mailjet.com、api.us.mailjet.com、smtp.maileroo.com、api.postmarkapp.com、mandrillapp.com、api.resend.com、api.sendgrid.com、api.eu.sendgrid.com、api.mailersend.com、api.scaleway.com。
  • メール送信手段: EmDash は送信メールをプラグインに渡し、プラグインが有効なプロバイダーを通じて送信します。

プラグインは EmDash のサンドボックス内で動作し、それ以外には一切アクセスできません。

API キー

API キーは EmDash のシークレット設定であり、サイトの EMDASH_ENCRYPTION_KEY を用いて AES-GCM で暗号化されます。保存したキーがブラウザーに戻されることはありません。管理画面には末尾 5 文字だけが表示されます。プロバイダーがエラーメッセージに含めて返した設定済みのシークレットは、マスクされます。

保存されるデータ

  • 履歴: 受信者、件名、プロバイダー、ステータス、メッセージ ID、試行回数、所要時間、エラー。既定では 30 日後に削除されます。
  • メール本文: メールがキューで待機している間のみ、またはオンにした場合は履歴に保持されます。ランダムな 256 ビットのキーを用いて AES-GCM で暗号化され、そのキー自体も EmDash のシークレットとして保存されます。サインインメールと招待メールは、送信後は保持されません。
  • ログ: 失敗、キューの実行、削除。履歴とともに削除されます。
  • 認証済みの送信元とアカウントの状態: 設定のフィンガープリントとともにプラグインのストレージにキャッシュされます。キーは含まれません。

メールは有効なプロバイダーの API にのみ送られます。それ以外のものがサイトの外に出ることはありません。

公開ルート

公開されているルートは 1 つです: GET /_emdash/api/plugins/apimail/logo?p=。プラグインに同梱されているプロバイダーのロゴを提供し、データは読み取りません。

管理画面

管理ページは非公開のルートを使います。プラグインが動作する前に、EmDash はプラグインの管理が許可されたサインイン済みのユーザーと CSRF ヘッダーを要求します。

変更履歴

0.3.1

  • プロバイダーカードを 1 行に 2 枚ではなく 3 枚表示: デスクトップでより引き締まった一覧になりました。
  • 各プロバイダーカードに Website リンクを追加し、新しいタブで開きます。
  • Set as default を Activate に変更。スマートフォンのカードに収まる短さです。
  • プロバイダーのページは、保存済みデータからその経過時間とともにすぐ開きます。プロバイダーが呼び出されるのは、キーを保存したときまたは **Refresh from ** を使ったときだけで、呼び出しにかかった時間がメッセージで表示されます。

0.3.0

  • 設定済みの各プロバイダーのカードに Set as default ボタンを追加。
  • 認証済みの送信元やアカウントの状態の取得に失敗した場合は、ログに記録され、キーに権限がない場合を除き、次回のページ読み込み時に再試行されます。
  • 送信元の一覧に、取得した時刻が表示されます(エラーの後も同様)。
  • 管理ページがスマートフォンに合わせて調整されました。プロバイダーカードは 1 行に 2 枚、統計カードは最大 3 枚、長い値は専用の行に表示され、履歴の列は減りました。
  • メニュー項目を短縮: History、Queue、Logs。
  • ラベル、ログ、エラー、テストメールの件名で、長いダッシュの代わりに通常のハイフンを使用。
  • バンドルを小型化: プロバイダーのロゴは可逆圧縮の WebP タイルです。
  • レジストリの掲載内容: 説明、インストール、FAQ、変更履歴、セキュリティの各タブとバナー。

0.2.0

  • プロバイダーから認証済みの送信元を選択: 認証済みのアドレス、認証済みドメイン上の任意のアドレス、または手入力。Sender タブと各テストフォームで利用できます。
  • 各プロバイダーのページにアカウントの状態を表示: プラン、クレジット、クォータ、評価。
  • テストに設定済みの送信元が不要になり、Use as the default sender で成功した送信元が保持されます。
  • 保存したキーの末尾 5 文字が表示されます。
  • ドイツ語の管理画面。