Claude Code のワークフローにおけるメールの位置付け
Claude Code は Anthropic のコーディングエージェントです。ターミナル、エディター、ブラウザで動作し、コードベースを読んで全体に変更を加えます。「確認付きのメールとパスワードでのサインアップ」を依頼すると、フォーム、API の呼び出し、テンプレートが、Supabase Auth、Clerk、Auth.js、Firebase、独自のバックエンドなど、使っているものに接続された状態で作られます。
苦手なのはメールの受信です。ユニットテストは送信をモックし、エンドツーエンドテストは確認を省略することがよくあります。そのため、最初の本物の確認メールが最初の本物のユーザーに送られることがよくあります。
どのログインが作られますか?
依頼したものです。多くのアプリは Supabase Auth、Clerk、Firebase Authentication、Auth.js、Better Auth のいずれかを使い、それぞれ送るメールが異なります。Clerk はデフォルトでコード、Firebase はリンクを送り、Auth.js は残りを構築しない限りマジックリンクのみです。「確認コード付きのメールとパスワード、さらに Google」のように必要な方法を Claude Code に伝え、送られる各メールをテストしてください。各ログインサービスが送るメール。
5 分でできるエンドツーエンドのチェック
- Proxy Mail QA でアドレスを作成します。新規ユーザー、招待ユーザー、リセットなど、シナリオごとに用意したい場合は複数まとめて作成します。
- アプリを起動し(
npm run devなど)、そのアドレスでサインアップします。 - コードやリンクが届くのを確認します。 数秒以内にアドレスの行に表示され、コードには Copy ボタン、リンクには Open link と Copy link ボタンが付きます。
- フローを完了します。 コードをアプリに貼り付けるか、リンクをクリックします。リンクが
localhost:3000を指している場合は警告します。ローカル開発中はそれが想定どおりです。This is my dev environment を選ぶと、そのプロジェクトでは再び警告されません。 - リリース前にステージングで繰り返します。 ここでは localhost へのリンクは本物のバグであり、生成された認証コードで最も多い問題です。修正方法はこちら。
Claude Code にメール自体を確認させる
Proxy Mail QA プラグインは MCP server と 8 つのスキルを追加します。スキルは、サインアップのエンドツーエンドテストからメールが届かない原因の調査まで、Claude Code に作業の手順を示します。Claude Code で、次の 2 つのコマンドを 1 つずつ実行してください。
/plugin marketplace add aaquib90/proxymail-qa-plugin/plugin install proxymail-qa@proxymail-qa次に /mcp と入力し、proxymail-qa、Authenticate の順に選びます。ブラウザが開くので Proxy Mail QA にサインインし、Claude Code が使えるプロジェクトを選びます。API キー をコピーする必要はありません。MCP server だけを使う場合は、代わりにターミナルで claude mcp add --transport http proxymail-qa https://api.proxymail.qa/mcp を実行し、同じ方法で認証します。API キー を使う場合は、MCP server のセットアップを参照してください。
あとは普通の言葉で頼みます。「新しい Proxy Mail QA アドレスで localhost:3000 にサインアップして、メールを確認して」。Claude Code がアドレスを作成し、フォームに入力し、コードかリンクを待ってサインアップを完了します。受け取るのはコードかリンクだけで、メールの本文は受け取りません。
Claude Code に証拠を渡す
おかしな点があれば、見たものをそのままセッションに貼り付けてください。あいまいな説明より具体的な説明のほうが効果的です。
- 「ステージングの確認メールが
http://localhost:3000/auth/confirmにリンクしています。リダイレクト URL を環境変数から組み立て、環境ごとに設定してください。」 - 「リセットメールにはリンクが 60 分有効とありますが、5 分で使えなくなります。有効期限を設定している箇所を探してください。」
- 「1 回のサインアップで確認メールが 2 通届きます。重複して送信している箇所を探してください。」
受信トレイのビューには、各メールの送信者、件名、本文全体、含まれるすべてのリンクが表示されます。通常、エージェントに必要な情報はこれで足ります。
リリース前に、アプリが送信するすべてのメールの一覧を頼みましょう。
List every email this app sends: sign-up confirmation, magic link, password reset, invite and email change. For each, tell me what triggers it, which URL its link points to, and how long its link or code stays valid. Flag anything that uses localhost.ヒント
- 実行ごとにタグを付けます。
k3f9q2m8x7aa+run2@mailclub.dev宛てのメールは同じ受信トレイに届き、タグrun2が表示されるので、繰り返し実行しても区別できます。 - パスワードはアカウントと一緒に保存します。 サインアップに使ったパスワードをアドレスに保存するか、テスト用パスワードを生成 で一般的なルールを満たすパスワードを作成してください。
- プロジェクトでまとめます。 開発中のアプリごとに 1 つのプロジェクトを作り、ステージング URL をリンクし、必要ならプレフィックスを付けてアドレスを見分けやすくします。