ひとことで言うと
メールOTP(Email One-Time Password)は、認証のたびに使い捨ての数字コード(一般的に4〜8桁)をメールで送付し、ユーザーがそのコードを入力することで本人確認を完了する仕組みです。コードは数分〜30分程度で失効し、一度使用されると再利用できないため、パスワードの永続的な盗難リスクとは異なるリスクプロファイルを持ちます。
マジックリンクがURLのクリックで認証を完結させるのに対し、メールOTPはコードをアプリ・Webページの入力欄に手入力する点が異なります。この追加ステップがユーザーには手間ですが、「クリックするだけでログインできるURL」よりもフィッシングメール経由の悪用が検知しやすいという特性があります。
- 相手がログインなしで開ける状態か確認する
- PCとスマホで最低1回ずつ表示を確認する
- 内部情報・個人情報・不要な外部送信が残っていないか見る
- レビュー期限と修正時の差し替え方を決めておく
HTML共有で関係する場面
ギガサイト便でAI生成サイトにメール認証を設定した場合、アクセス者はURLを開いた際にメールアドレスを入力し、届いたOTPコードを入力して初めてページを閲覧できます。URLを知っているだけでは開けないため、「URLが漏れても特定メールドメインを持つ人のみ閲覧可能」という制御ができます。
社外のクライアント複数人に同一のプレビューURLを共有するシナリオでは、メールOTPが適しています。パスワード共有では「パスワードを誰が誰に教えたか」が管理できませんが、メールOTPでは各自のメールアドレスで認証するため、アクセス記録とメールアドレスを紐づけて監査ログを残せます。
よくある誤解
「OTPはSMS認証のことだ」という誤解があります。OTPはチャンネルを問わず「一度しか使えないパスワード」全般を指す語で、SMSで送るものはSMS OTP、メールで送るものはEmail OTPです。どちらもワンタイムパスワードという概念は同じですが、配送チャンネルの安全性(SMSはSIMスワップ攻撃リスクがある)が異なります。
「6桁コードは総当たりで突破できる」と心配する人もいます。適切に実装されたメールOTPは、一定回数(5〜10回)の入力失敗でコードを無効化するレートリミットを持ちます。100万通りの入力試行はレートリミットで防がれるため、実際の突破難易度はパスワードと同等かそれ以上です。
安全に使うための注意点
OTPの有効期限はできるだけ短く設定してください。15分以内が推奨で、3分に設定しているサービスもあります。有効期限が長いほどメールを盗み見られたときのリスクウィンドウが広がります。ユーザーへの案内文に「このコードは○分間有効です」と明記して期限切れの混乱を防いでください。
メール送信に使うドメインは必ずSPF・DKIM・DMARCを設定してください。これらが未設定だとOTPメールが迷惑メールフォルダに振り分けられやすくなり、ユーザーがコードを受け取れずサービスが使えないという問題が起きます。特に新しいドメインからの送信はスパムフィルターに引っかかりやすいため、メール到達率のモニタリングも重要です。
よくある質問
メールOTPとSMS OTPはどちらを選ぶべきですか?
コスト・利便性ではメールOTPが有利です(送信コストが低く、メールアドレスは誰でも持っている)。セキュリティではSMSはSIMスワップ攻撃に脆弱なため、高セキュリティ要件ではメールOTPまたはTOTP(認証アプリ)が推奨されます。社内ツールや中程度の機密レベルではメールOTPが現実的な選択です。
OTPコードが届かない場合、何分待てばよいですか?
通常は30秒〜2分以内に届きます。3分経っても届かない場合は迷惑メールフォルダを確認し、なければ再送信を試みてください。5分以上待つ必要がある場合は送信元サーバーの障害や迷惑メールブロックの可能性があるためサポートへ連絡を推奨します。
同じコードを複数デバイスで使い回すことはできますか?
適切に実装されたシステムでは、一度入力に成功した時点でコードが無効化されるため、別デバイスで同じコードを使うことはできません。ただし入力せずに有効期限内であれば、同じコードを別デバイスで使ってログインできる実装も存在します。どちらの仕様かはサービスのドキュメントで確認してください。