テスト用IDを分離する
テストごとに新しいアドレスを使い、過去のメールや認証コード、既読状態の影響を避けます。
テストケースごとに専用アドレスを用意し、実際の送信を実行します。到着時間、テンプレートの言語、認証コード、リンク先の4項目で結果を確認しましょう。
メールが「届いたように見える」だけでは、確認は完了しません。許容できる遅延、認証コードの有効期間、リンクの環境、テンプレートの言語、モバイル表示を明確にしておけば、失敗時にどの項目が基準から外れたのか把握できます。
テストごとに新しいアドレスを使い、過去のメールや認証コード、既読状態の影響を避けます。
実際のUIまたはAPIで操作を完了し、キューを回避してメールサービスを直接呼び出さないようにします。
差出人、件名、変数、プレーンテキスト版、ボタンのリンク、ローカライズを確認します。
不具合の再検証に備え、イベント時刻、message ID、スクリーンショット、環境を記録します。
初回の成功だけをテストしてはいけません。メール認証はレート制限、状態遷移、セキュリティポリシーと連動するため、境界ケースで重複送信や誤ったテンプレートが見つかりやすくなります。
| フロー | 最低限のケース | 内容の確認 | 状態の確認 |
|---|---|---|---|
| 登録確認 | 初回、メールアドレス重複、リンク期限切れ | 宛名、確認ボタン、環境ドメイン | 1回のみ使用、期限切れメッセージ |
| ログイン認証コード | 正しいコード、誤ったコード、再送、レート制限 | 6桁コード、有効期間、デバイスに関する案内 | 旧コードの無効化、クールダウンのカウントダウン |
| パスワードリセット | 存在するアカウントと存在しないアカウント | セキュリティ文言、リセットリンク | アカウント列挙対策、リンクの無効化 |
| ワークフロー通知 | 成功、失敗、一部成功 | タスク名、数値、対象環境 | 重複排除、再試行、遅延 |
幅320~390pxで長い件名、ボタンの文言、認証コードのブロック、URLを確認し、重要な情報が横方向に切れないようにします。
画像を無効にするか text/plain 版を表示し、認証コード、リンク、サポート情報が完全かつ分かりやすく残っていることを確認します。
アカウントの言語とテンプレートの言語を1対1で対応させ、日付、句読点、変数がデフォルトの英語のままになっていないか確認します。
メールの問題は、業務アプリ、キュー、プロバイダー、受信システムにまたがります。タイムスタンプと一意の識別子がなければ、チームは推測を繰り返すしかありません。