カスタムテンプレートを使うと、自動返信メール(訪問者向け)と通知メール(管理者向け)の本文を自由な文面に書き換えられます。フォームの入力値の埋め込み、条件分岐、複数選択項目の展開などに対応しています。
設定はフォームの「メール設定 > 文面」(訪問者向け)と「メール設定 > 管理者文面」(管理者向け)で、「カスタムテンプレート」を選ぶと編集できます。
テキストとHTMLの2種類を設定する
カスタムテンプレートには「テキストテンプレート」と「HTMLテンプレート」があり、メールは両方を含むマルチパート形式で送信されます。どちらが表示されるかは受信者のメールクライアントの設定次第のため、両方のテンプレートを同じ内容に揃えてください。片方だけ更新すると、受信者によって古い文面が表示されます。
2種類ある理由の詳細はカスタムテンプレートのよくある質問をご参照ください。

フォームの入力値を埋め込む
フォームのinput要素等のname属性の値を {{ }} で囲むと、その項目の入力値が埋め込まれます。
例えば以下のフォームの場合、
<form>
<input type="text" name="お名前" />
<input type="email" name="email" />
<textarea name="お問い合わせ内容"></textarea>
<button type="submit">送信</button>
</form>テンプレートは次のように書けます。
{{ お名前 }} 様
お問い合わせありがとうございます。
以下の内容で受け付けました。
メールアドレス: {{ email }}
お問い合わせ内容:
{{ お問い合わせ内容 }}項目名の書き方の注意
- name属性に半角スペースやドットが含まれる場合、受信時にアンダースコアに変換されます(例:
GitHub URL→{{ GitHub_URL }})。 - name属性にハイフンなどの記号が含まれる場合は
{{ attribute(_context, 'select-store') }}の書き方を使います。{{ select-store }}と書くとエラーにならず「0」が出力されるためご注意ください。詳細はよくある質問をご参照ください。 - フォームのHTMLを変更できる場合は、name属性を英数字とアンダースコアだけ(例:
select_store)にしておくと迷いがありません。name属性の設定ルールもあわせてご参照ください。
条件分岐(if)
{% if %} で、入力の有無などに応じて文面を変えられます。任意入力の項目に「未入力」と表示する例です。
電話番号: {% if 電話番号 %}{{ 電話番号 }}{% else %}未入力{% endif %}複数選択の項目(ループ・join)
チェックボックスの複数選択(name="興味のある分野[]" のような項目)の値は配列で渡されます。join フィルタで連結するか、{% for %} で1つずつ出力してください。
興味のある分野: {{ 興味のある分野|join('、') }}
{% for 分野 in 興味のある分野 %}
- {{ 分野 }}
{% endfor %}使えるフィルタ・タグ
テンプレートの記法にはTwigを使用していますが、安全のため使える機能を以下に制限しています。
- タグ:
if/for - フィルタ:
nl2br/join/date/format/urlencode/escape(e) - 関数:
attribute
よく使うのは、改行をHTMLの<br>に変換する nl2br(HTMLテンプレートでtextareaの入力値を表示する場合に必須)と、複数選択を連結する join です。
<p>お問い合わせ内容:<br>
{{ お問い合わせ内容|nl2br }}</p>添付ファイル
フォームで送信された添付ファイルは、テンプレートに書かなくても自動でメールに添付されます。本文にファイル名を表示したい場合のみ、{{ ファイル項目名.name }} と書いてください。
{{ attachment.name }} → ⭕ ファイル名が出力される
{{ attachment }} → ❌ 送信エラーになる問い合わせIDを記載する
問い合わせごとの固有IDは {{ HYPER_FORM_MESSAGE_ID }} で埋め込めます。詳細は問い合わせIDをメール内に記載するをご参照ください。
メールの件名にも埋め込める
「メール設定 > 基本」の「メールの件名」「管理者向けメール件名」でも、本文と同じ {{ 項目名 }} の書き方でフォームの入力値を埋め込めます。
件名固有の挙動が2つあります。
- 入力値に含まれる改行は半角スペースに置き換えられ、件名全体は200文字で切り詰められます。
- 件名のテンプレートに誤りがあった場合、メールの送信は止まらず、書いた文字列がそのまま件名になります(受信メールの件名に
{{が見えていたら誤りのサインです)。
訪問者向けと管理者向けの関係
「文面」タブで設定したテンプレートは訪問者向けの自動返信メールに使われ、初期設定では管理者への通知メールにも同じ文面が使われます(文面が同じだと、通知メールにそのまま返信して訪問者とやりとりできるためです。通知メールの返信先には訪問者のメールアドレスが設定されます)。
管理者向けに別の文面(社内向けの体裁、全項目の一覧など)を使いたい場合は、「管理者文面」タブで「管理者向けに別の文面を使用する」を有効にしてください。管理者向けテンプレートの書き方は訪問者向けと共通です。
動作確認とエラー時の挙動
テンプレートは保存時には構文チェックされません。保存後に各編集画面の「プレビューを見る」で、サンプル値を使った実際の出力を確認してください。テンプレートに誤りがある場合はプレビュー画面にエラーが表示されます。
誤りのあるテンプレートのまま問い合わせを受けた場合は、次のようになります。
- 該当のメールは送信されません(訪問者の送信操作自体はエラーにならず、問い合わせデータも保存されます)。
- 管理者にはエラー通知メールが届きます。
- テンプレートを修正した後、問い合わせの詳細画面の「メールを再送」から改めて送信できます。

その他の注意点
- カスタムテンプレートでは、標準テンプレート用の「テンプレートスタイル」欄(CSS)は適用されません。HTMLテンプレートに直接
style属性や<style>タグを記述してください。 - アンダースコア始まりのname属性(通知に含めない項目)も、カスタムテンプレートに
{{ _項目名 }}と書くと出力されます。非表示のままにしたい項目はテンプレートに書かないでください。
関連ページ
- カスタムテンプレートのよくある質問
- メール設定の基本項目(メールプレビューの使い方)
- 問い合わせIDをメール内に記載する
- name属性の設定ルール