For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /ja/docs/web/email.md (or send Accept: text/markdown).
メールと送信
トランザクションテンプレート、プレビューツール、プロバイダーアダプター。
最初のローカル メッセージを読み、配信を有効にします
トランザクション電子メールとは、サインイン コードやタスクの結果など、アプリのアクションによってトリガーされるメッセージを意味します。 Web サーバーが実行されている状態で、EMAIL_PROVIDER=local を apps/web/.env.local. のままにしておきます。データベースのセットアップを完了し、/auth でサインイン コードを要求し、/mail-preview を開いて最新のメッセージを検査します。ここに表示されるローカル メッセージは、外部の受信トレイに配信される電子メールではありません。
実際のメッセージを送信するには、電子メール プロバイダーを 1 つ選択し、そのアカウントを作成し、管理するドメインを確認して、その専用ガイドに従います。名前付き API キーと送信者アドレスを apps/web/.env.local に入力し、保存して Web サーバーを再起動します。新しいサインイン コードを 1 つ要求し、プロバイダーの配信ログと宛先の受信箱 (スパムを含む) の両方を確認します。ドメインの検証と送信者の承認には時間がかかる場合があります。
メッセージが失敗した場合は、繰り返しリクエストする前に、配信エラーと送信者の検証を検査してください。 /mail-preview ルートは開発専用であり、運用環境では 404 を返します。ニュースレター キャンペーンによってアカウント確認メールが中断されないように、マーケティング活動をこのトランザクション送信者から切り離してください。
トランザクショナル配信を分離する
メールモジュールは、認証やタスク完了通知を含むトランザクショナルな製品メッセージを処理します。アウトリーチは消費製品自身のフローに属し、このトランザクショナル経路から分離されたままであるべきです。
配信アダプターを設定する
決定的テストにはローカルアダプターを使います。外部配信を有効にする前に、選択した本番アダプターとそのサーバー認証情報を設定します。メールプロバイダーの秘密をクライアント設定やログに入れないでください。
配信を独立して記録する
生成された結果とその完了メールは別々の結果を持ちます。メッセージが送信されたと主張する前に配信レコードを検査してください。失敗した配信を、失敗した生成として扱ったり重複モデル作業を送信したりせずにテストします。
インストールとセットアップ
EMAIL_PROVIDER=local は開発中の配信を決定的に保ちます。本番配信には設定済みアダプターから 1 つを選びます——Resend(RESEND_API_KEY)、AWS SES(AWS_REGION とアクセスキー)、Postmark、SendGrid、Mailgun、汎用 SMTP、Brevo——EMAIL_FROM はプロバイダーが受け付ける検証済み送信者 ID と一致させてください。
すべてのテンプレートは src/transactional-mail-templates.ts にあります。開発専用の /mail-preview ルートが全テンプレートを描画するため、メールを送信せずに変更を視覚的にレビューできます。
EMAIL_PROVIDER=resend
EMAIL_FROM=Your Product <[email protected]>実装ワークフロー
認証コード、マジックリンク、招待、課金通知、タスク完了メールはすべて、解決済みロケールのテキストで同じトランザクション送信者を経由します。アウトリーチキャンペーンは別のプロダクト上の関心事であり、このパスを共有することはありません。
テキストやレイアウトを編集する前に mail-preview でテンプレートをプレビューし、ブランド値(名前、色、ロゴタイル)を設定由来に保ち、派生プロダクトがテンプレートをフォークせずに再スタイルできるようにします。
検証とトラブルシューティング
テストではローカルアダプターの記録メッセージ(受信者、件名、描画済み本文)に対してアサートします。送信失敗はクラッシュしたワークフローではなく配信結果として現れるべきです。実配信には REAL_SMOKE_EMAIL_ALLOWED_DOMAIN を使うオプションの smoke パスを使います。