多くのランディングページやホームページに必須のお問い合わせフォーム

弊社にもよく「HTMLで問い合わせフォームを作ってください」というご依頼をいただくことがあります。

しかし、このご依頼方法は場合によっては「???」な混乱を産むことがあります。

今回は最低限知っておきたいフォームの基礎知識をお伝えします。

HTMLにメール送信機能はない

勘違いされている方が非常に多いですが、「HTMLだけでメールを送る」ことはできません。

HTMLは目に見えるフォームを作ることはでき、その情報を送信することはできます。

しかし、

  • 管理者に問い合わせ内容をメールやメッセージで送る
  • フォームを入力した人に自動返信メールを送る
  • 問い合わせ内容を保存する
  • 問い合わせ完了後に「問い合わせ完了」ページに飛ぶ

といった動作をHTMLという言語で行うことは基本できません。

これらの動作をするためにはHTML以外の言語やシステムを使う必要があります。

Formタグがあるんじゃないの?

HTMLの<form>というタグでも確かに情報の送受信ができます。

ただし、あくまで情報を送受信するだけです。その情報を元にメールを送信したり、問い合わせを管理する方法がありません。

メールアドレスや名前を入れて送信できたとしても、その内容を処理する機能がありません。

そのため情報を受け取って「情報を整形してメールの形に変換してメールを送信する」という機能が別途必要になります。

「送信した後にサンクスページに飛ばして」もできない

「問い合わせありがとうございました」のようなサンクスページを作って、そのページに飛ばすようにしてください…というオーダーはかなり多いです。

しかし、このサンクスページに飛ばす挙動はHTML本来の機能では実装できず

  • JavaScriptを使ってフォーム送信後にサンクスページに移動する
  • PHP等のサーバー言語を使ってフォーム送信後にリダイレクトする

といった設定が必要になります。

JavaScriptでメールを送れないの?

JavaScriptでメールを送ることも基本「できない」と思った方が良いです。

これも先程の<form>と同様、JavaScriptで情報を送受信すること自体は可能ですが、受け取る側がありません。

問い合わせ内容を管理したり自動返信メールが届いたり…のようなことはJavaScriptを用いたとしてもほぼ不可能です。

ただし、先ほどの「送信後にサンクスページに飛ばす」はJavaScriptでも可能です。

フォームを入力してメールを送信する方法は2種類

PHPのようなサーバー言語を利用して送る

多くの場合、メール送信時に利用するのはこちらの「サーバー機能経由で送信する方法」です。

PHPピーエイチピーPerlパールといったサーバー側で動く言語(バックエンド言語とも言います)を利用して入力された情報を処理します。

WordPressのプラグインもほとんどはPHPを利用してメール送信しています。

当然、これらの言語が使えるサーバーを利用しないと動きません。一般的にWebサイトの表示に使われるレンタルサーバーであれば問題なく動作します。

静的ホスティングを利用しているケースでは動かないので注意が必要です。

サーバー側言語を利用する場合、セキュリティに気を使わなければならない点に注意しましょう。セキュリティ知識に不安があると思ったら、後述のメール送信サービスを利用するのがおすすめです。

メールを送信する専用のサービスを利用する

例えばGoogleフォームFormrunのようなフォームサービスもあります。

これも厳密にはサーバーを利用していますが、自前のサーバーではなくメール送信サービス側のサーバーを利用します。

自分でサーバー環境を整える必要がないためHTMLファイルのみで実装でき、セキュリティに関してもそこまで強く意識する必要はありません。

ただしデザインや挙動に成約がある

これらのサービスは知識も不要で安心できますが、サービス独自の制限がある場合が多いです。

具体的には

  • 自由なデザインが作れない
  • フォーム送信後の挙動が決まっている
  • 有料版でしか実装できない挙動がある

上記のような制限がかかっていることが多いです。

デザイン的に自由なフォームを作りたい場合は、サーバー言語を使用して送ることを検討しましょう。

フォームを作る際にいただく「よくある質問」

弊社にもフォーム制作依頼は頻繁にいただきます。中でもよくご質問いただく項目をご紹介します。

Q. フォームの見た目は自由にいじれるの?

いじれる場合といじれない場合がある…が答えです。

例えば外部のメール送信サービスを使用している場合は自由にいじれないことが多いです。

もちろん100%見た目を編集できないわけではありません。多くの場合、メール送信サービス側で編集するためのシステムが用意されています。

ただし、テンプレートを逸脱することが難しいことに変わりないので、もし自由に見た目を編集したい場合はPHP等のサーバー側言語を利用するようにしましょう。

Q. WordPressプラグインを入れたほうが良いの?

そんなことはありません。むしろデメリットの方が多いです。

特に「メール送信するためだけにWordPressを入れる」のはナンセンス。

確かにWordPressのプラグインは非常に便利ですが、そもそもWordPressを維持管理するコストの方がかかることを忘れてはいけません。

基本的にフォーム単体を導入するよりコストが高くなりますし、HTMLで作っているページよりも表示速度等のパフォーマンスが低下します。

ただし、元からサイト全体をWordPressで作るという前提であればもちろんフォームプラグインは選択肢になります。

Q. フォームのデータをメール以外に送ることはできるの?

もちろんメール以外で問い合わせを受け取ることも可能ですし、メールで受け取る場合でも特殊な挙動が可能です。

例えば

  • 問い合わせデータをGoogle スプレッドシートにまとめたい
  • Slackで問い合わせ通知を受け取りたい
  • 問い合わせ内容の種類によってメールアドレスを変えたい

といった特殊なケースです。

もちろん、これらのフォームも実装自体は可能です。

ただし、既存のテンプレートやメール送信サービスで対応できないケースがほとんどのため、当然ながらそれ専用のシステムを組む必要があります。

Q. 段階式のフォームはどうやって作るの?

例えば

  1. 「住所」と「年収」を入力して、次へ
  2. 「名前」と「生年月日」を入力して、次へ
  3. 「メールアドレス」を入力したら送信

のようないくつかの段階に分かれるフォームを作りたいというパターンですね。

これらのフォームは通常、JavaScriptを用いて制作します。

段階式のフォームは分岐の方法やバリデーション(入力内容のチェック)に癖があることが多く、テンプレートが少ないです。

もし開発する場合は素直に専門家に依頼するのが最適でしょう。

まとめ:メールフォームはHTMLだけじゃ作れない

問い合わせフォームを作る際はHTMLだけでなくサーバー側の設定やメールフォームサービスを利用しなければいけないという内容をお伝えしました。

少し難しく感じられた方も多かったと思います。それだけフォームは取り扱いが難しく、セキュリティ面で最も弱くなりがちなポイントです。

ぜひしっりとした知識をもってフォーム設置に取り組んでください。

1日16円〜で頼れる技術パートナー

営業支援・技術支援ツールはこちら