EmDashはマジックリンクログイン、ユーザー招待、アカウント回復にメールを使用します。プロバイダープラグインがメールを配信します;プラグインをインストールすることでプロバイダーを選択して設定します。
このガイドでは、メールパイプラインの仕組み、開発環境で何が初期状態で利用できるか、本番環境用に実際のプロバイダーを接続する方法について説明します。
メール配信の仕組み
単一のアクティブなプロバイダープラグインがすべての送信メールを配信します。プロバイダーがアクティブでない場合、メールが必要な機能は利用できません — 招待リンクはユーザーページから手動でコピーして共有する必要があります。
管理画面のSettings → Emailで現在の状態を確認できます:プロバイダーがアクティブかどうか、どのプラグインか、そして完全なパイプラインをテストするsend test emailボタンがあります。
開発環境:組み込みコンソールプロバイダー
開発環境(astro dev)では、他のプロバイダーが選択されていない場合、EmDashは組み込みのコンソールプロバイダーを自動的にアクティブにします。何も送信しません — 各メールをターミナルにログし、最後の100メッセージをメモリに保持します。
つまり、マジックリンクと招待は開発環境で初期状態で機能します:マジックリンクをリクエストし、ターミナル出力からURLをコピーします。開発専用エンドポイントGET /_emdash/api/dev/emailsでキャプチャされたメールをリストすることもできます(DELETEで削除)。
コンソールプロバイダーは開発専用で、本番ビルドでは実行されません。
本番環境:プロバイダープラグインをインストール
Cloudflare Workers
Cloudflareでは、@emdash-cms/cloudflare/pluginsのcloudflareEmail()プラグインを使用します。Worker send_emailバインディングを介してCloudflare Email Sendingで送信するため、外部アカウントやAPIキーは不要です。Cloudflareデプロイメントガイドでは、送信者ドメインのオンボーディング、バインディングの追加、プラグインの登録について説明しています。
Nodeおよびその他のプラットフォーム
コミュニティメンテナンスのemdash-smtpプラグインファミリーは、汎用SMTPとホスト型プロバイダーをカバーしており、Amazon SES、Brevo、Mailgun、Postmark、Resend、SendGrid、Zohoなどが含まれます。
pnpm add emdash-smtp
次の設定でプラグインをEmDashに登録します:
import { defineConfig } from "astro/config";
import emdash from "emdash/astro";
import { emdashSmtp } from "emdash-smtp";
export default defineConfig({
integrations: [
emdash({
// ...データベース/ストレージ設定
plugins: [emdashSmtp()],
}),
],
});
プロバイダーの認証情報は、プラグイン自身の設定を通じて設定されます — プロバイダーマトリックスと設定の詳細については、READMEを参照してください。
プロバイダー認証情報の保存場所
プロバイダープラグインは、APIキーとパスワードをプラグイン設定として宣言します。管理画面のプラグイン設定ページで入力します;EmDashは他のプラグイン設定と一緒にデータベースに保存し、キーのローテーションはそこに新しい値を貼り付けることを意味します。Secrets & Key Managementはストレージとその注意事項を説明しています。
プラグインがデプロイメントシークレット(wrangler secret put、.env)を代わりに読み取れるかどうかは、そのフォーマットに依存するため、READMEに従ってください。サンドボックスプラグインはprocess.envやプラットフォームバインディングにアクセスできません。ネイティブプラグインはprocess.envを読み取れます;ビルド時にインライン化され、ビルドマシンの値をバンドルに焼き付けるimport.meta.envを使用してはいけません。
プロバイダーの選択とテスト
-
プロバイダープラグインをインストールしてアクティブ化し、管理画面でSettings → Emailを開きます。
-
複数のプロバイダープラグインがインストールされている場合、そこでアクティブなものを選択します — 一度に1つだけが配信します。
-
Send test emailを使用して、完全なパイプラインをエンドツーエンドで検証します。結果は配信エラーを直接表示するため、認証情報をデバッグする最速の方法です。
トラブルシューティング
- “No email provider is configured” — プロバイダープラグインがアクティブではありません。インストールしてアクティブ化し、Settings → Emailで選択します。
- マジックリンク/招待が暗黙的に利用不可 — 同じ原因。プロバイダーがないと、ユーザーページは招待を作成しますが、招待リンクを手動でコピーする必要があります。
- 開発環境では動作するが本番環境で失敗 — 開発環境は組み込みのコンソールプロバイダーを使用し、本番プロバイダーの欠落をマスクします。デプロイされたサイトでSettings → Emailを確認してください。
- メールがスパムに振り分けられる — メールプロバイダーで送信ドメインのSPF/DKIM/DMARCを設定します;これはプロバイダー側で、EmDash設定ではありません。
関連
- 認証 — メールに依存するマジックリンク、招待、回復フロー
- メールフックリファレンス —
email:beforeSend,email:deliver,email:afterSend