よくある原因
AI生成HTMLが迷惑メール判定に間接的に影響するケースとして多いのは「HTML内に外部サーバーへのフォーム送信が含まれていて、メールフィルタがフィッシングと誤判定する」パターンだ。HTMLを見たメールフィルタが「このURLには送信処理がある」と判断して、OTPメール全体をスパムとして扱う可能性がある。
もう一つはAI生成コードがHTMLのhead部分に過剰なmetaタグや外部JavaScriptを埋め込む場合だ。特に`<meta http-equiv="refresh">`でリダイレクトするコードが入っていると、メール本文の読み込みが壊れたように見え、受信者が「怪しいメール」と判断してスパム報告することがある。
- 相手がログインなしで開ける状態か確認する
- PCとスマホで最低1回ずつ表示を確認する
- 内部情報・個人情報・不要な外部送信が残っていないか見る
- レビュー期限と修正時の差し替え方を決めておく
自分側で確認すること
AIへの指示に「このHTMLはメール本文ではなく、メール認証付きの独立したWebページとして表示される。formタグのaction属性、meta refresh、外部JavaScriptファイルの読み込みは使わないこと」と明記する。この一文で迷惑メール誤判定の起点になりやすいコードの生成を抑制できる。
生成されたHTMLをブラウザで開く前に、テキストエディタで`<form`と`http-equiv`の2語を検索する。formタグがある場合はaction属性が`#`か空文字になっているかを確認し、外部URLが指定されていれば削除する。meta refreshは行ごと削除して問題ない。
- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する
相手側で確認すること
受信者から「OTPメールが来ない」と連絡を受けたとき、HTMLの内容が原因かどうかを切り分けるには、ギガサイト便の管理画面で別のシンプルなHTMLファイル(白紙)をアップロードして同じURLで認証テストを行う。これで問題が解消されれば、元のAI生成HTMLの中に迷惑メール誤判定を誘発する要素があると判断できる。
受信者が使うメールサービスによって誤判定の基準が異なるため、問い合わせを受けたらまず「どのメールアドレスで受け取ろうとしていますか?(Gmail/Outlook/会社メールなど)」を確認する。メールサービスごとに対処法(ホワイトリスト登録の方法など)を用意しておくと案内がスムーズになる。
- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する
再発防止の運用
AI生成HTMLのアップロード前チェックとして「formタグのaction属性検査」「meta refreshの有無」「外部JavaScriptリンクの有無」の3点を自動チェックするシェルスクリプトを用意しておくと、人的ミスによる確認漏れをなくせる。grep一行で検索できるため、CI環境への組み込みも容易だ。
チームでAI生成HTMLを使う頻度が高い場合は、標準プロンプトテンプレートをREADMEやWikiに掲載し、全員が同じプロンプトを使う運用にする。プロンプトのバージョン管理はGitで行い、問題が起きた場合にどのプロンプトで生成したHTMLかを追跡できるようにしておくと原因調査が速くなる。
- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する
よくある質問
AI生成HTMLにGoogle Analytics(gtag.js)を入れると迷惑メール判定に影響しますか?
Google AnalyticsはHTMLページ自体の解析に使われるもので、OTPメールの迷惑メール判定には直接影響しません。問題になるのはHTMLページ内のformタグやリダイレクトで、外部計測タグそのものは無関係です。
AIに生成させたHTMLのファイルサイズが大きいとメール到達率に影響しますか?
ファイルサイズはOTPメールの到達率に影響しません。ギガサイト便のメール認証は認証コードだけを送信するため、HTMLのサイズとは独立しています。ただしページの読み込み速度には影響するため、最適化は別途行ってください。
プロンプトにどれだけ禁止事項を書いても、AIが毎回守ってくれるとは限りません。毎回手動確認が必要ですか?
はい、AIの指示遵守率は100%ではないため、アップロード前の手動確認は必須です。ただし前述のgrepスクリプトを使えば確認に要する時間を15秒以内に短縮できます。