メールフォームを一つのサイト内に複数設置したい場合の設置例


今ご覧になっているこのサイトで無料ダウンロードできる「レスポンシブ・メールフォーム」は既存のサイトに組み込んで使用することができます。

その際の具体的な作業手順は以下のページを参考にしていただくとして、このページではメールフォームを一つのサイトに複数設置する場合の設置例のパターンを紹介します。

なお、このページの解説はあくまでも「設置例のパターン」を紹介するだけなので、具体的な設置手順や作業内容は上記ページを参考にしてください。

例えば以下のような構成のサンプルサイトがあると仮定し、このサイトのすべてのページ(トップページ以外)にメールフォームを組み込むとします。

index.html (トップページ)
  ┃
  ┣━━ product.html (取扱商品一覧・このページにフォームを組み込みたい)
  ┃
  ┣━━ about.html (企業概要・このページにフォームを組み込みたい)
  ┃
  ┣━━ access.html (アクセス・このページにフォームを組み込みたい)
  ┃
  ┗━━ inquiry.html (お問い合わせ・このページにフォームを組み込みたい)

宛先メールアドレスやサンクスページの設定がすべてのフォームで共通の場合は、以下のような構成で設置することができます。

mailformフォルダはなくても可能なのですが、あったほうが後々の管理がしやすいので追加しています。

index.html (トップページ)
  ┃
  ┣━━ product.html (取扱商品一覧・このページにフォームを組み込みたい)
  ┃
  ┣━━ about.html (企業概要・このページにフォームを組み込みたい)
  ┃
  ┣━━ access.html (アクセス・このページにフォームを組み込みたい)
  ┃
  ┣━━ inquiry.html (お問い合わせ・このページにフォームを組み込みたい)
  ┃
  ┣━━ thanks.html (サンクスページ)
  ┃
  ┗━━ mailform/
          ┣━━ addon/
          ┣━━ css/
          ┣━━ js/
          ┗━━ php/

addoncssjsphpのフォルダの中身は以下の図では省略していますが、初期状態のまますべて入っているとお考え下さい。
また、メールフォームに同梱のindex.htmlは不要ですので、サーバーにアップロードする必要はありません。

このような設置の場合、以下のような作業をするだけですべてのページ内に設置したメールフォームが正常に動作します。

  1. すべてのページにform要素のHTMLを記述し、そのaction属性のパスをmailformフォルダ内にあるmailform.phpになるように記述する。(絶対URLでも相対URLでもどちらでもOK)
  2. すべてのページからmailformフォルダ内にあるCSSファイルやJSファイルを読み込ませる。

上記の各作業の詳細なやり方については「既存サイトにメールフォームを組み込み設置する際のディレクトリ構成例と作業手順」のページを参考にしてください。

なお、この設置のやり方をした場合でも、問い合わせメールが来た際にどのページのフォームからの送信だったかを判別することが可能です
なぜなら、このメールフォームではフォームのページのURLを取得する機能が付いており、管理者に届くメール内に記載されるからです。
(以下はaccess.htmlからフォーム送信されたメールの記載例)

【メールフォームのURL】
https://ここにドメイン/access.html

宛先メールアドレスやサンクスページの設定がフォームごとに異なる場合は、以下のような構成で設置することができます。

index.html (トップページ)
  ┃
  ┣━━ product.html (取扱商品一覧・このページにフォームを組み込みたい)
  ┃
  ┣━━ about.html (企業概要・このページにフォームを組み込みたい)
  ┃
  ┣━━ access.html (アクセス・このページにフォームを組み込みたい)
  ┃
  ┣━━ inquiry.html (お問い合わせ・このページにフォームを組み込みたい)
  ┃
  ┣━━ thanks.html (サンクスページ)
  ┃
  ┣━━ mailform-product/
  ┃      ┣━━ addon/
  ┃      ┣━━ css/
  ┃      ┣━━ js/
  ┃      ┗━━ php/
  ┃
  ┣━━ mailform-about/
  ┃      ┣━━ addon/
  ┃      ┣━━ css/
  ┃      ┣━━ js/
  ┃      ┗━━ php/
  ┃
  ┣━━ mailform-access/
  ┃      ┣━━ addon/
  ┃      ┣━━ css/
  ┃      ┣━━ js/
  ┃      ┗━━ php/
  ┃
  ┗━━ mailform-inquiry/
          ┣━━ addon/
          ┣━━ css/
          ┣━━ js/
          ┗━━ php/

このケースの場合は、メールフォームプログラム一式(mailformフォルダ)を4つに複製し、それぞれの中にあるconfig.phpでの設定をフォームごとに別々にしておきます

そして、各ページにあるフォームの送信先(form要素のaction属性)のパスを以下のように変更し、それぞれ別々のフォルダに振り分けます。

【product.htmlにあるフォームのHTML】

<form action="mailform-product/php/mailform.php" method="post" id="mail_form">

【about.htmlにあるフォームのHTML】

<form action="mailform-about/php/mailform.php" method="post" id="mail_form">

【access.htmlにあるフォームのHTML】

<form action="mailform-access/php/mailform.php" method="post" id="mail_form">

【inquiry.htmlにあるフォームのHTML】

<form action="mailform-inquiry/php/mailform.php" method="post" id="mail_form">

なお、各フォームのページで読み込むCSSやJSは上記のように振り分ける必要はありません。(振り分けたとしても問題はありません)

config.phpを4つ別々にしたいだけのために、メールフォームプログラム一式(mailformフォルダ)を丸ごと4つ設置するのはあまりスマートなやり方ではないですが、もしこれを1つにしたい場合はプログラムファイルのカスタマイズ(有料)が必要になってしまいます。

どうしてもそのような形にしたい方はカスタマイズ依頼をご検討ください。