コンテンツにスキップ

ルーティング: フォーム・メール

ルートにフォーム機能を組み込むと、お問い合わせ・資料請求などのフォーム受付と、確認画面・メール送信までを 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 になる ハニーポット保護/改ざん検知の設定が確認画面側と送信側でそろっていない(例: 確認画面でチェックだけ入れて送信側に制限時間(秒)が未入力)。セキュリティ設定(フォーム) のペア対応を確認

詳しい対処は トラブルシューティング を参照してください。

次に読むページ