ルーティング: フォーム・メール¶
ルートにフォーム機能を組み込むと、お問い合わせ・資料請求などのフォーム受付と、確認画面・メール送信までを CMS で完結できます。
このページは ルート設定 の続きです。
フォームの構成¶
フォームは 入力画面 → 確認画面 → 送信処理 の 3 ステップで動作します。送信処理ではメール送信や、指定 URL へのリダイレクトを設定できます。

入力画面の設定¶
| 項目 | 説明 | 必須 |
|---|---|---|
| 名前 | 入力画面の識別名 | はい |
| URL パターン | 入力画面の URL パターン | はい |
| テンプレート | 入力画面の HTML テンプレートのパス | はい |
| 入力項目 | フォーム内の各フィールド定義 | いいえ |
入力項目の定義¶
各入力項目には次を設定します。
| 項目 | 説明 |
|---|---|
| パラメータ名 | フィールド名(英数字のみ) |
| 入力タイプ | テキスト・テキストエリア・選択肢・チェックボックスなど |
| バリデーション | 入力値の検証ルール(必須、最大長、正規表現など) |
入力項目の定義は、HTML テンプレート側の
<input name="...">と一致させる必要があります。テンプレート側で項目を追加・変更したら、フォーム設定側も同時に更新してください。
確認画面の設定¶
| 項目 | 説明 | 必須 |
|---|---|---|
| 名前 | 確認画面の識別名 | はい |
| URL パターン | 確認画面の URL パターン | はい |
| テンプレート | 確認画面の HTML テンプレートのパス | はい |
| 送信先 URL | 送信完了後のリダイレクト先 | いいえ |
入力画面と確認画面の 名前 URL パターン テンプレート は、それぞれ別の値にする必要があります。同じ値を使うと正しく動作しません。
サンプルテンプレート¶
入力画面・確認画面それぞれに、サンプルテンプレートが用意されています。設定画面から呼び出して、自分のサイトの HTML に貼り付けてカスタマイズしてください。
セキュリティ設定(フォーム)¶
公開フォームはボットや悪意のあるリクエストの標的になりやすいため、以下のセキュリティ機能を有効化してください。
重要: 設定は「確認画面側」と「メール送信側」に分かれており、両方がそろって初めて機能します。 片方だけを設定すると検証が常に失敗し、正常な送信もすべてステータスコード 400 で弾かれる事故になります。たとえばハニーポット保護を「確認画面側でチェックだけ入れて、メール送信側に制限時間(秒)を入れていない」状態だと、すべての送信が 400 エラーになります。設定の対応関係を必ず両画面で確認してください。
ハニーポット保護¶
人間には見えない隠しフィールドとトークンを使って、自動入力するボットや、極端に短時間での送信を検出します。検出時はメールを送信せず、ステータスコード 400 を返します。
設定は次のように 2 つの画面に分かれます。
| 設定箇所 | 項目 | 説明 |
|---|---|---|
| 確認画面 のルート設定 | 有効/無効 | チェックボックスで切替。ON にするとフォームに隠しフィールドとトークンが自動付与される |
| メール送信 設定 | 制限時間(秒) | トークンの有効期限。この秒数が未設定だと検証が通らず送信が 400 になるため、確認画面側を有効化したら必ず入力する |
| メール送信 設定 | エラーページテンプレート | 検出時(400)に表示するページ。省略時はデフォルトの 400 画面 |
パラメータ改ざん検知¶
送信時にフォームのパラメータが改ざんされていないかを検証します。改ざんを検知した場合はメールを送信せず、ステータスコード 400 を返します。こちらも 2 つの画面に設定が分かれます。
| 設定箇所 | 項目 | 説明 |
|---|---|---|
| 確認画面 のルート設定 | 対象フォーム ID | チェック対象のフォーム ID(JSON 配列)。例: ["form1", "form2"]、全フォーム対象は ["*"] |
| 確認画面 のルート設定 | 検証パラメータ | 検証対象のパラメータ名(JSON 配列)。例: ["item1", "item2"] |
| メール送信 設定 | 有効/無効 | チェックボックスで切替。確認画面側の対象フォーム ID・検証パラメータと対で有効化する |
「対象フォーム ID」「検証パラメータ」は JSON 配列で記述します。例:
["form1", "form2"]。形式が正しくないとエラーになります。1 つのパスに複数のメール送信設定がある場合は、いずれか 1 つのメール送信設定で有効になっていれば問題ありません(ハニーポット保護・パラメータ改ざん検知のどちらも同様)。
これらを設定・変更したら、本番公開前に必ず実際の送信テストを実施して、正常な送信が 400 にならないことを確認してください。
メール送信¶
フォーム送信時に管理者宛・申込者宛のメールを自動送信できます。
メール設定項目¶
| 項目 | 説明 | 必須 |
|---|---|---|
| 送信者名 | From ヘッダの表示名 | はい |
| 送信元メール | From ヘッダのメールアドレス | はい |
| Return-Path | エンベロープ From | いいえ |
| 宛先 | 送信先(複数指定可) | はい |
| CC | CC の送信先 | いいえ |
| BCC | BCC の送信先 | いいえ |
| Reply-To | 返信先メールアドレス | いいえ |
| 件名 | 件名 | はい |
| 本文テンプレート | 本文 | はい |
| リダイレクト URL | 送信後のリダイレクト先 | いいえ |
パラメータの差し込み¶
件名・本文・送信先のフィールドには、フォームの入力値やバインドの値を差し込めます。テンプレート構文に従って書いてください。
画面の 差し込み ボタンから挿入される構文は $name(中括弧なし)です。たとえば本文に「お名前: $name 様」と書くと、フォームで入力された name フィールドの値が差し込まれます。
変数名の直後に英数字やアンダースコアが続くケース(例:
$name様のように繋げて書きたい場合)は、中括弧で囲む${name}形式も利用できます。
メール送信のセキュリティ¶
ハニーポット保護・パラメータ改ざん検知は、確認画面側とメール送信側に分かれたペア設定です。メール送信設定側で受け持つのは次の項目です。
- ハニーポット保護: 制限時間(秒)/エラーページテンプレート
- パラメータ改ざん検知: 有効/無効チェックボックス
確認画面側だけ、またはメール送信側だけを設定すると正常な送信もすべて 400 になります。詳細とペアの対応関係は セキュリティ設定(フォーム) を参照してください。
トラブルシューティング¶
| 症状 | 確認ポイント |
|---|---|
| フォーム送信後にメールが届かない | 送信元メールが正しいか/管理者のメールサーバーで送信ドメインがブロックされていないか |
| 確認画面に値が表示されない | 入力項目のパラメータ名と HTML の name 属性が一致しているか |
| 「不正な送信です」と表示される | ハニーポット保護のトークン有効期限切れ、または改ざん検知に引っかかっている |
| 正常な入力でも送信がすべて 400 になる | ハニーポット保護/改ざん検知の設定が確認画面側と送信側でそろっていない(例: 確認画面でチェックだけ入れて送信側に制限時間(秒)が未入力)。セキュリティ設定(フォーム) のペア対応を確認 |
詳しい対処は トラブルシューティング を参照してください。