Biz SMTP Form Autoresponder — リードがフォームを送信した後の自動メール送信
このスキルは、ランディングページの登録フォーム(VNトラフィック標準の名前/電話番号/メールアドレス)を、ユーザーが送信した直後に2通の自動メールに変換します。(A) リードに送信するウェルカムメール、(B) オーナーに送信する通知メール。メールは、biz-* パイプラインの既存コンテキストに基づいて各オファーごとに個別にドラフトされます(「ご登録ありがとうございます。すぐにご連絡いたします」などの一般的なコピーではありません。それはリードを冷やすコピーです)。
哲学: 自動返信メールはゴールデンモーメントです。リードが送信ボタンを押した瞬間 = ピークインテントにあります。30秒以内に届くメールは、(1) 正しく送信されたことを確認し、(2) CTAで約束したもの(リードマグネット/予約/支払いリンク)を提供し、(3) 次のステップを明確に設定する必要があります。優れた自動返信メールは、20〜40%のコールドリードをホットリードに変えます。一般的なメールは、リードが送信者をブロックしたり、24時間以内にブランド名を忘れたりします。
なぜSMTPか(1つのプロバイダーにロックインされない): SMTPはオープンな標準です。ユーザーは予算、地域、コンプライアンスに合ったプロバイダーを選択できます。Gmail SMTPは1日500通まで無料(1日50リード未満のランディングページに十分)、Resend SMTPは月3000通、SendGridは永久無料で1日100通、Brevo(VNで人気)は無料で1日300通、VNホスティング(Mắt Bão/PA/Inet)は通常SMTPが付属しています。コードは
nodemailerを使用します。プロバイダーの変更は4つの環境変数を変更するだけで、コードの修正は不要です。ベンダーロックインを回避します。
出力: コードパッチ + 2通のメールドラフト(HTMLレスポンシブ) + 環境変数リスト + テスト計画。スキルはテストメールを自動送信しません — ユーザーは事前にドラフトを確認する必要があります。リードマグネットリンク、ブランドボイス、緊急性を促す文言はすべてユーザーの資産だからです。
このスキルを使用するタイミング
- ユーザーがランディングページをデプロイしたばかりで(
/biz-deploy-vercel経由)、フォームが宙に浮いた状態で送信されている場合。 - ユーザーが既存のランディングページ(Next.js、Vite、またはVercel上の静的HTML)を持っており、メール自動応答機能を組み込みたい場合。
- ユーザーが新しいページを構築中で、デプロイ前に最初からメール統合を希望する場合。
- ユーザーが既にGmail/Google Workspaceを持っており、新しいプロバイダーアカウントを作成する代わりに無料のSMTPを活用したい場合。
- ユーザーがVNホスティング(Mắt Bão、PA、Inet)を持っており、既存のSMTPサーバーを使用したい場合。
このスキルを使用しない場合:
- ユーザーがメールマーケティング配信(ニュースレター、7〜30日のドリップキャンペーン)を希望する場合 → Mailchimp/ConvertKit/MailerLiteの方が適しています。
- ユーザーがSMS/Zalo OAの自動応答を希望する場合 → 別のユースケースです。
- ユーザーがCRM統合(リードをHubspot/Pipedrive/Notion DBに入れる)を希望する場合 → 別のスキルです。
- ユーザーが大量のコールドメールアウトリーチを必要とする場合 → Instantly/Smartlead。トランザクショナルメールではありません。
ワークフロー概要(7フェーズ)
フェーズ 0: プロジェクトスタックの検出 (Next.js App / Pages / Vite / 静的HTML)
↓
フェーズ 1: SMTPプロバイダーの選択 (Gmail / Resend SMTP / SendGrid / Mailgun / Brevo / Zoho / カスタム)
↓
フェーズ 2: コンテキストの収集 (offer.json + conversion-copy.md、またはNext.jsのapp/page.tsxを読む、またはデプロイ済みHTMLを読む)
↓
フェーズ 3: メールパターンの選択 (リードマグネット / 予約 / 支払い / ナーチャリング)
↓
フェーズ 4: 2通のメールドラフト(自動返信 + オーナー通知) — ユーザーに表示
↓
フェーズ 5: ユーザーレビュー & 編集 — ユーザーが承認するまで繰り返し
↓
フェーズ 6: コードの配線 (nodemailerのインストール + APIルート + フォームバインディング + 環境変数)
↓
フェーズ 7: プロバイダーセットアップ + テスト計画 — SMTP認証情報の取得、ドメイン確認(必要な場合)、ライブテストの手順
各フェーズではユーザーに確認を求めます — 特にフェーズ1(プロバイダー選択)、フェーズ4-5(メール内容)、フェーズ7(プロバイダーDNS)はユーザーのブランド資産であるため、重要です。フェーズ6のコード生成では、スキルがより積極的になります。
フェーズ 0 — プロジェクトスタックの検出
プロジェクトのルートファイルを読み取り、スタックを特定します。スタックによって、APIルートの配置場所、nodemailerのインポート構文、フォームバインディングの種類(fetchかform actionか)が決まります。
| 検出ファイル | スタック | APIルートパス | フォームバインディング |
|---|---|---|---|
next.config.js/mjs/ts + app/ フォルダ | Next.js App Router | app/api/submit/route.ts | クライアントコンポーネント fetch('/api/submit') |
next.config.js/mjs/ts + pages/ フォルダ | Next.js Pages Router | pages/api/submit.ts | クライアントコンポーネント fetch('/api/submit') |
vite.config.js/ts | Vite (React/Vue/Svelte) | api/submit.js (Vercel関数) | クライアントコンポーネント fetch('/api/submit') |
package.json にフレームワークなし、index.html あり | 静的HTML | api/submit.js (Vercel関数) | インライン <script> と fetch('/api/submit') |
| ローカルプロジェクトなし、URLのみ | 既存のデプロイ済みページ | ユーザーが事前にリポジトリをクローンするか、リポジトリパスを指定する必要あり | — |
フォームフィールドを特定するための追加読み取り:
- コード内の
<form>を検索 → 既存の<input name="...">をリストアップ - デフォルトの期待値(プロジェクトメモリーによる):
name、phone、email。一部のページではcompany、message、budget、utm_sourceを追加。 - フォームがまだ存在しない場合 → スキルはフェーズ6で最低3つのフィールド(名前/電話番号/メールアドレス)を持つ新しいフォームを作成します。
重要: ユーザーにローカルプロジェクトがない場合(デプロイ済みURLのみ)、処理を停止して質問します: 「コードを組み込むためのローカルリポジトリはありますか?ソースファイルを編集する必要があります。URLのみの場合、リポジトリをクローンしてパスを教えてください。」 URLだけではコードを組み込めません。
フェーズ 1 — SMTPプロバイダーの選択
ユーザーに7つのプロバイダーから1つを選択してもらいます。各プロバイダーはSMTP設定(ホスト/ポート/認証)が異なり、ユーザーが選択するとスキルが自動的に環境変数テンプレートを入力します。
| # | プロバイダー | 無料枠 | 適しているケース | SMTPホスト | ポート | 備考 |
|---|---|---|---|---|---|---|
| 1 | Gmail / Google Workspace | 500通/日 | ユーザーが既にGmail/Workspaceを持っており、トラフィックが少ない | smtp.gmail.com | 587 (STARTTLS) | アプリパスワード(2FA)必須。メインパスワードは使用不可。 |
| 2 | Resend SMTP | 3000通/月 | 高い到達性と優れたログを求める場合、DNS設定に問題がない場合 | smtp.resend.com | 587 | ユーザー名 = resend、パスワード = APIキー。カスタム @brand.vn から送信するにはドメイン確認が必要。 |
| 3 | SendGrid SMTP | 100通/日(永久無料) | スタックが既にSendGridに慣れており、webhookが必要な場合 | smtp.sendgrid.net | 587 | ユーザー名 = リテラル apikey、パスワード = APIキー |
| 4 | Mailgun SMTP | 100通/日 × 3ヶ月 | EU/USリージョン、開発者フレンドリー | smtp.mailgun.org (US) または smtp.eu.mailgun.org (EU) | 587 | ユーザー名/パスワードはMailgunドメイン設定から |
| 5 | Brevo (Sendinblue) SMTP | 300通/日(永久無料) | VNで人気。最も広範な無料枠。 VNサポートあり | smtp-relay.brevo.com | 587 | ユーザー名 = ログインメール、パスワード = SMTPキー(APIキーとは別) |
| 6 | Zoho Mail SMTP | 5通/日(無料)、$1/ユーザー/月 | ユーザーが既にZoho Workspaceを使用している場合 | smtp.zoho.com | 587 | 2FAが有効な場合はアプリパスワードが必要 |
| 7 | カスタムSMTP | ホスティングに依存 | VNホスティング(Mắt Bão/PA/Inet/Nhân Hòa)にSMTPが付属している場合、またはPostfixをセルフホストしている場合 | ユーザーが提供 | ユーザーが提供 | ユーザーが完全なホスト/ポート/ユーザー名/パスワードを入力 |
オファータイプに基づくデフォルトの推奨:
- 1日50リード未満のランディングページで、ユーザーがGmailを持っている場合 → Gmail SMTP(ゼロコスト、5分でセットアップ)。
- 1日50リード以上のランディングページ、またはプロフェッショナルな到達性が必要な場合 → Brevo(無料で1日300通、VNでの到達性が良好)または Resend SMTP(月3000通、ログが優れている)。
- ユーザーが移行に強く、後でセルフホストできるようにしたい場合 → 最初からカスタムSMTP。
ユーザーへの質問形式:
自動メール送信にどのSMTPプロバイダーを使用しますか?
1. Gmail / Google Workspace(無料500通/日、Gmailを持っていれば最も簡単)
2. Resend SMTP(無料3000通/月、到達性が高い、ドメイン確認が必要)
3. SendGrid SMTP(無料100通/日永久、APIに慣れている場合)
4. Mailgun SMTP(無料100通/日 × 3ヶ月)
5. Brevo / Sendinblue SMTP(無料300通/日、VNで人気)
6. Zoho Mail SMTP(既にZoho Workspaceを使用している場合)
7. カスタムSMTP(お使いのVNホスティングに付属している、またはセルフホスト)
まだどのアカウントもお持ちでない場合、[トラフィックが少なければGmail / 高い到達性が必要ならBrevo]をお勧めします。番号を選んでください。
ユーザーが選択したら → フェーズ6で環境変数テンプレートに注入するために保存し、フェーズ7で正しいプロバイダーの認証情報を取得する手順を案内します。
⚠️ 重要 — セキュリティ: SMTP認証情報(特にGmailアプリパスワード)は、ユーザーのアカウントからメールを送信する権限を持っています。ソースコードにハードコードしないでください。 常に環境変数を使用してください。誤ってコミットした場合、すぐにローテーションするようにユーザーに警告してください。
フェーズ 2 — コンテキストの収集
目標: 一般的でないメールをドラフトするために、オファーを十分に深く理解すること。3つの入力モード:
モード A — パイプライン成果物あり(最もリッチ)
ユーザーが /biz-offer-alex-hormozi や ui-ux-pro-max を実行したばかり → 以下のファイルがあります:
output/<case-slug>/offer.json— セグメント、望ましい成果、仕組み、特典スタック、保証、価格(PRIMARYな真実のソース)output/<case-slug>/conversion-copy.md— ヒーローブロックのペースト準備完了(見出し、サブ見出し、CTAの文言)output/<case-slug>/landing-page/app/page.tsx— 現在構築されているNext.jsセールスページ(セクションと使用中のフォームフィールドを確認するために読む)
⚠️ 2026-05-14 更新: 古いパイプラインには
layout.json+copy.json(biz-sales-page-layoutから、こちらは非推奨)がありました。新しいプロセスではこれら2つのファイルをスキップします。offer.json+ page.tsxを読めば十分なコンテキストが得られます。
上記3つのソースを読む。メール用に抽出:
- セグメント + 望ましい成果 → 件名をパーソナライズ(「ようこそ」ではなく「[名前]、8週間のAIエージェントロードマップの準備ができました」)
- 仕組み名 → 本文で補強(「あなたが学ぼうとしているPROMPTフレームワークシステム...」)
- 特典スタック → メールにリスト(無料/低チケットのオファーで特典をすぐに提供できる場合)
- 保証文 → メールにそのまま引用して不安を軽減
- CTAの文言 → メールの最終CTAに反映
モード B — ランディングページはあるがJSONはない
ユーザーがデプロイ済みのHTMLを持っているが、biz-offer/biz-sales-pageを実行していない。スキルはHTMLを読み取る:
curl -s <URL>またはローカルのindex.htmlファイルを読む- ヒーローのh1、サブ見出し、CTAボタンテキスト、価格ブロック、保証ブロックを解析
- そこからオファータイプとセグメントを推測
モードBは80%のケースで十分ですが、モードAよりもメールのパーソナライズ性は低くなります。ユーザーに提案: 「/biz-offer-alex-hormozi を実行してoffer.jsonを取得してから戻ってくると、メールの質が向上します。または、モードBを続行することもできます。」
モード C — 何もない
ユーザーはHTMLフォームしか持っておらず、コンテキストがありません。スキルは5つの簡単な質問をヒアリングする必要があります:
- 販売している製品/サービスは何ですか?(1文)
- ユーザーがフォームに記入した後、何を送信したいですか?(ダウンロード可能なPDF / 予約リンク / 支払いリンク / 確認のみで後で電話する)
- ブランド名 + 送信者名(「From:」に表示されます)
- 新しいリードの通知を受け取りたいメールアドレス
- SPF/DKIMを確認するために所有しているドメイン(Resend/SendGrid/Mailgun/Brevoを選択した場合 — Gmailの場合はスキップ)
フェーズ 3 — メールパターンの選択
2トリガーモデル(チェックアウトフローがあるオファー向け): オンライン決済がある低チケットコース/デジタル製品の場合、異なる時点で2つの異なるトリガーがあり、2つの異なるメールを送信します。1つのメールにまとめないでください。
リードがランディングページでフォームに記入
↓
[トリガー A — /api/submit]
↓
メール P3(支払い前リマインダー、簡潔)
↓
リードが支払いを完了 → 支払いプロバイダーのwebhook
↓
[トリガー B — /api/payment-webhook]
↓
メール P5(購入後オンボーディング、完全版)
内容のルール:
- P3(支払い前): 支払いリンク + 短い保証 + 緊急性のみ。完全な納品物/特典スタックをリストしないでください — リードはまだ「獲得」していません。リストすると支払いの緊急性が低下します。
- P5(支払い後): すべてを提供 — アクセスリンク、完全な納品物、特典スタック、グループリンク、オフィスアワースケジュール、パーソナライズのための1つのフォローアップ質問。これこそがゴールデンモーメントです。
(詳細な根拠については、feedback_email-autoresponder-2-stage-flow のメモリーを参照してください。)
フェーズ2のコンテキストから、適切なパターンを選択します。詳細なベトナム語テンプレートについては、references/email-formulas.md を参照してください。
| パターン | トリガー | 使用するタイミング | 件名のヒント |
|---|---|---|---|
| P1 — リードマグネットの提供 | フォーム送信 | オファー = 無料のPDF/eBook/テンプレート/スワイプファイル/チェックリストのダウンロード | 「[名前]、[X]の資料が準備できました — 今すぐファイルを開く 👇」 |
| P2 — 予約確認 | フォーム送信 | オファー = 通話/相談/デモ/無料ストラテジーセッションの予約 | 「[名前]、コンサルテーションの登録を確認しました — 次のステップはこちら」 |
| P3 — 支払い前リマインダー | フォーム送信(未払い) | オファー = 低チケット製品(199K〜3M VND)、メールでチェックアウトに誘導 | 「[名前]、[コースX]の支払いリンク — 24時間限定割引価格 ⏰」 |
| P4 — ナーチャリング(近日中のセールスコール) | フォーム送信 | オファー = 高チケットコーチング/エージェンシー(5M〜50M + VND)、セールスチームが24時間以内に電話 | 「[名前]、[発信者]が24時間以内に連絡します — 準備用チェックリストはこちら」 |
| P5 — 購入後オンボーディング | 支払いwebhook | リードが支払いを完了したばかり — 完全な価値を提供 + 1つのパーソナライズ質問 | 「🎉 [名前]さん、[コースX]へようこそ — 今すぐロックを解除」 |
パターン選択のルール:
- オファー = 無料ダウンロード/トレーニング → P1のみ(1トリガー、1メール)。
- オファー = 無料の予約通話 → P2のみ(1トリガー、1メール)。
- オファー = オンライン決済(Stripe/Momo/ZaloPay/Sepay)のある低チケット → P3 + P5(2トリガー、2メール)。
- オファー = 高チケットセールスコール → P4のみ、フォローアップはセールスチームが担当(クロージング後のオンボーディングは別のプロセス)。
スキルは適切なパターンとその理由を提案し、ユーザーの確認を求めます。例: 「offer.jsonに基づくと、これは支払い統合がある1.99M VNDのコースです。2通のメールを設定することをお勧めします: P3(フォーム記入時の支払いリマインダー)+ P5(支払い完了後のオンボーディング + 1つのパーソナライズ質問)。よろしいですか、それとも最初にP3の1通だけにしますか?」
フェーズ 4 — 2通のメールをドラフト
純粋なベトナム語(「anh/chị」を使用)で、モバイルレスポンシブなHTMLの2通のメールを生成します。
メール A — リードに送信する自動返信
6つのブロック構造(パターンごとの具体的な文言については references/email-formulas.md を参照):
- 件名 —
{{name}}でパーソナライズ、50文字未満、ブランドボイスに合えば最後に軽い絵文字(✉️ 👇 ✓)を1つ、スパムトリガー(「無料」、「$$$」、「保証」の大文字)を避ける。 - プレビューテキスト — 受信箱の件名の下に表示される1文、メールを開いたときの価値を説明。
- 挨拶 — 「Chào anh/chị {{name}}、」 — 「拝啓」や「お客様各位」は使用しない。
- 本文 — 選択したパターンに従う。ルール:
- 短い(200語未満)。
- 明確なプライマリCTAリンク/ボタンが1つ。
- コンテキストから特定のオファー名/仕組みを参照(「弊社の製品」ではない)。
- パターンP3/P4の場合 → 緊急性のリマインダー1つ + 安心感(保証)1つ。
- 署名 — 送信者名 + ブランド名 + 1つの連絡先リンク(Zalo/電話/ウェブサイト)。
- フッター — 住所(スパム対策法で義務付け) + 配信停止リンク(コンプライアンスのため必要。トランザクションメールでも含めることを推奨)。
メール B — オーナーに送信する通知
構造:
- 件名 — 「[ブランド] — 新しいリード: [名前] - [電話番号]」
- 本文 — すべてのフォームフィールドをテーブル形式でリスト:
- 名前、電話番号、メールアドレス(必須)
- company、message、budget、utm_source(利用可能な場合)
- 送信日時 + タイムゾーン
- クイックアクション:
- 電話をかける(
tel: phoneリンク) - Zaloでチャット(
https://zalo.me/phoneリンク、VNユーザー向け) - メールに返信(
mailto:リンク)
- 電話をかける(
- 著名 — 「対応が必要な場合、...」を含む
フェーズ 5 — ユーザーレビュー & 編集
ユーザーが実際のメールを承認するまでコードを生成しないでください。プロセス:
- スキルが2通のメールドラフトをテキスト形式で表示(HTMLはレンダリング)
- ユーザーが編集する(件名の変更、CTAの文言の調整、BNIの削除...)
- ループする: スキルが修正 > 再表示 > ユーザー承認
- 承認されたらフェーズ6に進む
編集についての質問例:
- 「件名に[名前]の代わりに[ブランド名]を使いますか?」
- 「特典を3から2つに減らして、メールをより短くしますか?」
- 「緊急性を強調するためにCTAボタンの色を赤に変更しますか?」
フェーズ 6 — コードの配線
ステップ 6.1 — nodemailerのインストール
npm install nodemailer
# または pnpm / yarn
yarn add nodemailer
ステップ 6.2 — 環境変数ファイルの作成
プロジェクトのルートに .env.local を作成(または既存に追加)。Gmail SMTPの例:
# SMTP Configuration (Gmail example)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
[email protected]
SMTP_PASS=your-app-password-here
# Form submission
FROM_NAME=[Brand name]
[email protected]
# Owner notification
[email protected]
# Lead magnet (optional)
LEAD_MAGNET_URL=https://your-domain.com/download/guide.pdf
ステップ 6.3 — APIルートの作成
Next.js App Router (app/api/submit/route.ts):
import { NextRequest, NextResponse } from 'next/server';
import nodemailer from 'nodemailer';
export async function POST(request: NextRequest) {
try {
const body = await request.json();
const { name, phone, email } = body;
// Validate
if (!name || !phone || !email) {
return NextResponse.json({ error: '名前、電話番号、メールアドレスは必須です' }, { status: 400 });
}
// Create transporter
const transporter = nodemailer.createTransport({
host: process.env.SMTP_HOST,
port: Number(process.env.SMTP_PORT),
secure: false,
auth: {
user: process.env.SMTP_USER,
pass: process.env.SMTP_PASS,
},
});
// Email A: Auto-responder to lead
const leadEmailHtml = `
<div style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto;">
<h2>Chào anh/chị ${name},</h2>
<p>Cảm ơn anh/chị đã đăng ký!</p>
<!-- Tại đây, sử dụng nội dung đã được phê duyệt từ Phase 4-5 -->
<a href="${process.env.LEAD_MAGNET_URL}" style="display: inline-block; background: #007bff; color: white; padding: 12px 24px; text-decoration: none; border-radius: 4px;">Tải tài liệu ngay</a>
</div>
`;
await transporter.sendMail({
from: `"${process.env.FROM_NAME}" <${process.env.FROM_EMAIL}>`,
to: email,
subject: `[Tên], tài liệu đã sẵn sàng 👇`,
html: leadEmailHtml,
});
// Email B: Notification to owner
const ownerEmailHtml = `
<div style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto;">
<h2>🎉 New Lead!</h2>
<table>
<tr><td><strong>Name:</strong></td><td>${name}</td></tr>
<tr><td><strong>Phone:</strong></td><td>${phone}</td></tr>
<tr><td><strong>Email:</strong></td><td>${email}</td></tr>
</table>
</div>
`;
await transporter.sendMail({
from: `"${process.env.FROM_NAME}" <${process.env.FROM_EMAIL}>`,
to: process.env.OWNER_EMAIL,
subject: `[Brand] - New Lead: ${name} - ${phone}`,
html: ownerEmailHtml,
});
return NextResponse.json({ success: true });
} catch (error) {
console.error('Email error:', error);
return NextResponse.json({ error: 'メール送信エラー' }, { status: 500 });
}
}
ステップ 6.4 — フォームの配線
既存のフォームの送信ハンドラを見つけ、ローカル状態と置き換えます:
const handleSubmit = async (e: React.FormEvent) => {
e.preventDefault();
setLoading(true);
try {
const res = await fetch('/api/submit', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name, phone, email }),
});
const data = await res.json();
if (res.ok) {
alert('登録ありがとうございます!メールをご確認ください。');
} else {
alert('エラーが発生しました。もう一度お試しください。');
}
} catch (error) {
alert('ネットワークエラー');
} finally {
setLoading(false);
}
};
フェーズ 7 — プロバイダーセットアップ + テスト計画
プロバイダー別セットアップガイド(簡略版):
Gmail SMTP:
- Google アカウントで2FAを有効にする
- https://myaccount.google.com/apppasswords にアクセス
- アプリパスワードを生成 > 「メール」と「その他(カスタム)」を選択 > 「SMTP」という名前を付ける
- 生成された16桁のパスワードをコピーして
.env.localのSMTP_PASSに入力
Brevo SMTP:
- https://app.brevo.com でアカウントを作成
- SMTP & API > SMTP キー に移動 > 新しいキーを生成
- SMTPキーをコピーして
.env.localのSMTP_PASSに入力
テスト計画:
- 環境変数を確認:
.env.localのすべての値が正しいことを確認 - ローカルテスト:
npm run devを実行し、フォームに記入 - メール受信箱を確認:
- リードメール: 受信箱を確認、件名を確認、スパムフォルダを確認しない
- オーナーメール: オーナーの受信箱で確認
- エラーログ: ターミナルを確認 (500エラーは通常、SMTP認証情報が間違っているか、ファイアウォールがポート587をブロックしている)
- 本番テスト: Vercelにデプロイ(
vercel --prod)、フォームを再送信、すべてが機能することを確認
制限事項 & 注意事項
- このスキルはメールを自動送信しません。ユーザーが最初にドラフトを承認する必要があります。
- SMTP認証情報は機密情報です。
.env.local以外に置かないでください。ソースコードにコミットしないでください。 - このスキルはDDoS攻撃を防ぎません。大量送信が予想される場合は、レート制限(例: 同一IPから5分間に1回)を追加することをお勧めします。
- このスキルは検証メール(確認メール)を送信しません。メールが有効かどうかを確認するために確認リンクをクリックするようリードに要求する場合は、
references/signup-confirmation.mdを参照してください。 - このスキルはリードデータを保存しません(CRM/データベースに入れません)。バックエンドに保存する必要がある場合は、このスキルの後にCRM統合スキルを実行してください。
- このスキルはSPF/DKIM/DMARCを自動的に設定しません。フェーズ7でユーザーにこれらの設定を手動で行うよう案内します。
前提スキル(存在しない場合はスキップ)
/biz-offer-alex-hormozi— offer.json + conversion-copy.md を生成します(オプションですが、よりパーソナライズされたメールのために強く推奨)ui-ux-pro-max— Next.jsプロジェクトを構築します(オプション)/biz-deploy-vercel— Vercelにデプロイします(コード配線後にテストするために必要)
リファレンス
references/email-formulas.md— 各パターンのベトナム語メールテンプレートfeedback_email-autoresponder-2-stage-flow— 2トリガーモデル(P3 + P5)の根拠references/troubleshooting-smtp.md— 一般的なSMTPエラー(認証失敗、タイムアウト、ブロックされたポート)