1. 「送信できた」を3段階に分ける
フォームの不具合は、「送信完了と出たのに、連絡が来ない」という形で気づくことが多くあります。原因を探すときは、次の3段階に分けます。
| 段階 | 確かめること | 止まっているときの症状 |
|---|---|---|
| ① 画面 | 送信ボタンを押して、完了の表示になるか | エラーが出る、何も起きない |
| ② 保存 | 受付側の管理画面に、送った内容が残っているか | 完了の表示は出るが、管理画面に何もない |
| ③ 通知 | 担当者のメールなどに、通知が届いたか | 管理画面には残っているが、メールが来ない |
②と③の確認を省くと、「届いていない問い合わせ」に気づけません。公開前のテスト送信で、3段階すべてを一度確認しておきます。
2. 静的なサイトには、フォームの受け口が別に必要
HTMLだけのサイト(静的サイト)は、入力欄を表示できても、送られた内容を受け取る仕組みを持ちません。受け取る処理をどこが担当するかを、先に決める必要があります。次の2つの例を、公式資料で確認しました。
Netlify Forms
公式資料によると、Netlifyの管理画面でフォームの検出を有効にすると、公開のたびにHTMLが調べられ、フォームが見つかります。HTMLのform要素にdata-netlify="true"(またはnetlify)を付け、複数のフォームがあればnameを分けます。
<form name="contact" method="POST" data-netlify="true">
<input type="text" name="name">
<input type="email" name="email">
<button type="submit">送信</button>
</form>JavaScriptで画面に描かれるフォームは、公開時の検出で見つかりません。公式資料は、同じ入力名を持つ隠しの静的HTMLフォームを置くか、描いたフォームにform-nameの隠し入力を入れるよう案内しています。
Cloudflare Pages
Cloudflareの公式チュートリアルでは、フォームの送信先(例:/api/submit)を、Pages Functionsで自分で書いています。今回確認したチュートリアルには、Netlify Formsのようなフォーム検出機能の記載はありません。送られた内容を保存・転送する処理も、自分で用意する前提です。チュートリアルの例は、受け取った項目を返すだけで、保存や転送は行っていません。
3. Netlify Formsで確認する点
公式資料に書かれている内容から、段階ごとの確認点を整理します。
| 段階 | 確認すること |
|---|---|
| ② 保存 | 管理画面の「Forms」に、フォームの名前と送った内容が出るか。迷惑メール判定(Akismet)された内容は「Spam submissions」の一覧に出る。この一覧から「確認済み」へ戻せる。honeypot(隠し入力)やreCAPTCHAで拒否された内容は、この一覧に入らない |
| ③ 通知 | 「Forms」の「Submission notifications」で、メールとWebhookへの通知を設定する(SlackはNetlifyのSlack用アプリで設定する)。メールの送信元はformresponses@netlify.comで、返信は標準でこのアドレスに届く。フォームにname="email"の入力があると、返信先が送信者のアドレスになる |
通知メールが受信箱に見当たらないとき、公式の通知の資料には、迷惑メールに分類される場合の記載がありません。まず管理画面に内容が残っているかを見て、残っていれば、メールの迷惑メールフォルダと、上の送信元アドレスの受信設定を確認します。
迷惑メール対策として、honeypotを使う場合は、form要素にnetlify-honeypotを付け、人間には見えない入力欄を1つ足します。そこに値が入った送信は、受け付けられません。
4. 公開前のテスト送信の手順
- 公開用のURLで、実際に使うメールアドレス以外の名前(例:テスト太郎)を入力して送る。
- 送信直後の画面に、完了の表示か、エラーが出るかを記録する(①)。
- 1〜2分後に、受付側の管理画面を開き、送った内容が残っているかを見る(②)。迷惑判定の一覧も見る。
- 通知の宛先のメールを開き、通知が届いたか、迷惑メールフォルダに入っていないかを見る(③)。
- 返信が必要な場合は、通知メールから返信し、送信者に届く宛先になっているかを確かめる。
- テスト送信は、本物の問い合わせと混ざらないように、件名や名前に「テスト」と入れ、確認後に管理画面から削除する。
| 確認日 | URL | ① 画面 | ② 保存 | ③ 通知 | メモ |
|---|---|---|---|---|---|
| (記入) | (記入) | ○/× | ○/× | ○/× | (記入) |
5. 個人情報を集めるときに必要なこと
氏名やメールアドレスを集めるフォームを置くなら、集める項目、使う目的、保存する場所と期間、削除する方法を、サイト上に書きます。サービスを変えたときは、記載も更新します。「フォームを付けた」だけで公開すると、利用者に何が起きているかが伝わりません。
フォームの有無は、サイトの目的によって決めます。電話やメール、外部の予約サービスへの案内だけで足りるなら、フォームを置かない選択もあります。公開前の確認項目は、公開前チェックとチェックリストにまとめています。
参照した公式資料
- Netlify Docs:Forms setup
- Netlify Docs:Form submission notifications
- Netlify Docs:Spam filters
- Cloudflare Pages:Handle form submissions with Pages Functions
2026年10月10日に確認した各サービスの公式資料に基づく整理で、実際にフォームを作って送信した検証ではありません。Netlify Formsの料金や送信件数の上限は、プランによって扱いが異なるため、この記事では触れていません。利用前に公式の料金・利用量の説明を確認してください。この記事に広告はなく、外部リンクは公式資料への通常リンクです。