PHP工房さんのメールフォームを実装しよう
WEBサイト制作を行うほとんどのケースでメールフォームが必要になってきます。
しかし、メールフォームはサーバー側の言語を使わないと実装ができません。
「メールフォーム」は送信するだけの簡単なものに見えますが、入力内容を扱うため、安全性と送信確認まで含めて設置する必要があります。
設置前に確認すること:PHPが動くサーバーが必要です
HTMLとCSSだけのページは無料の静的ホスティングでも公開できますが、このメールフォームはmail.phpを実行するため、PHPとメール送信機能が使えるサーバーが必要です。パソコン内でcontact.htmlを開くだけでは、実際の送信テストはできません。
- 利用中のサーバーで、配布版が対応するPHPバージョンを選べるか
- PHPの
mail()またはsendmailが利用できるか - 独自SSL(HTTPS)を設定できるか
- フォームと
mail.phpを同じ構成でアップロードできるか
PHP工房の公式ページでは、配布版はPHP 5.1〜8.5.5で動作確認済み(2026年6月10日時点)と案内されています。エックスサーバーの公式マニュアルではPHP 8系を含む複数バージョンとsendmailが利用可能です。対応状況は変わるため、契約前と設置前に公式情報を確認してください。
HTML/CSS課題の表示だけなら、先にHTML・CSSで作ったページを公開する方法を確認してください。PHPフォームや独自ドメイン、仕事用メールまで必要な場合は、サーバー用語と有料サーバーを検討する目安も参考になります。
広告
エックスサーバーはPHPとsendmailに対応しています。2026年10月8日時点ではスタンダードの36か月契約が通常月額換算990円(税込)で、2026年11月4日17時までは初回利用料金の割引が案内されています。月額換算の表示と実際の支払総額は異なるため、必要な期間・更新時の通常料金・独自ドメイン特典の条件を確認してから申し込んでください。短期の学習だけなら、不要な長期契約をする必要はありません。
公式資料(2026年10月8日確認):PHP工房 MailForm01/エックスサーバーで使用できるプログラム言語/エックスサーバー料金

そこでPHP工房のフリーメールフォームが役立ちます。
ファイルをダウンロードしましょう。

UTF-8のものがよいでしょう。
ファイルを確認する
中身には
- contact.html
- mail.php
の二つが含まれています。
「contact.html」はメールフォーム画面です。

そして「mail.php」がメール送信プログラムであり、こちらに各種設定を記載する必要があります。
設定できる項目は以下のとおり。
必須設定
- サイトのトップページのURL ($site_top)
- 管理者のメールアドレス(送信先)($to)
- 管理者宛てメールの返信先(reply)($from)
- 管理者宛メールの送信元(差出人)($from_add)
- フォームのメールアドレス入力箇所のname属性の値($Email)
セキュリティ任意設定
- スパム防止のためのリファラチェック($Referer_check)
- リファラチェックを「する」場合のドメイン($Referer_check_domain)
- セッションによるワンタイムトークン(CSRF対策、及びスパム防止)
上記が主な設定項目です。
ほかに管理者宛メールと自動返信メールの設定項目が任意項目としてありますので、細かい指定が必要な場合は設定してください。
必須設定だけで公開完了とは考えず、実際のサーバー上で次の項目まで確認してください。
- 入力画面から確認画面へ進める
- 未入力時に必須エラーが表示される
- 管理者宛メールと自動返信メールが届く
- 迷惑メールフォルダにも入っていない
- HTTPSで送信でき、送信後ページへ移動できる
テストには実在する自分のアドレスを使い、公開前にテスト内容を削除してください。送信元アドレスは訪問者が入力したアドレスではなく、設置先ドメインのアドレスを設定すると、なりすまし判定を避けやすくなります。配布版の設定項目と最新版の注意事項を必ず確認してください。
ファイルをアップロードする
あとはファイルをフォルダごとアップロードすれば動作します。
アップした場所の「contact.html」にアクセスしましょう。
*******/mailform/contact.html
というURLにアクセスすれば表示されるはずです。
必須項目の設定ができ、確認画面も搭載された高機能なフォームです。
自分のデザインしたフォームを使う
このままでも十分実用できますが、自分で作ったフォームのデザインにしたいと考えている方も多いと思います。
そのやり方について解説します。
formタグのactionに「mail.php」を指定し、nameの属性だけ注意すれば動作するのでとても良くできています。

以前コーディング練習ように作成した、上記のフォームをphp工房用にカスタマイズして、使えるようにしていきます。
データがダウンロードできますので参考にしてください。
フォームを修正・カスタマイズ
作ったフォームは次のとおり
<form action="" method=""> <h1>お問い合わせフォーム</h1> <h2>名前</h2> <input type="text"> <h2>メールアドレス</h2> <input type="email"> <h2>問い合わせ内容</h2> <div class="box"> <label><input type="radio" name="kind">商品購入お申し込み</label> <label><input type="radio" checked="checked" name="kind">返品・トラブル</label> <label><input type="radio" name="kind">その他</label> </div> <textarea></textarea> <p class="submit-wrap"><input type="submit" value="送信"></p> </form>
こちらを少し編集します。
- 名前とメールアドレスを必須にする
- type=”radio” をCheckBOXに変更(設定が複雑そうなこちらに変更します)
- チェックボックスにvalueの値を追加します。
<h2>メールアドレス (必須)</h2> <input type="email"> <h2>問い合わせ内容 (必須)</h2> <div class="box">
<label><input type="checkbox" value="商品購入お申し込み" name="">商品購入お申し込み</label> <label><input type="checkbox" value="返品・トラブル" name="">返品・トラブル</label> <label><input type="checkbox" value="その他" name="">その他</label>
必須の部分は本来は装飾を加えた方が見栄えが良いと思いますが、今回はそこが本質ではないのでこのまま進めたいと思います。
フォームが動作するように修正する
まずはフォームの送信先を指定しましょう。
フォームタグの属性を変更します。
<form action="mail.php" method="post">
次に、inputとtextareaにおいて「項目名=name属性」にします。
name属性に指定された内容が確認画面で利用されますので、変更しておきましょう。
日本語を使うことに違和感を覚えると思いますが、このプログラムにおいては仕様のようなので、日本語で記載してしまいましょう。
<h2>名前 (必須)</h2> <input type="text" name="名前"> <h2>メールアドレス (必須)</h2> <input type="email" name="メールアドレス"> <h2>問い合わせ内容</h2> <div class="box"> <label><input type="checkbox" value="商品購入お申し込み" name="問い合わせ内容種別[]">商品購入お申し込み</label> <label><input type="checkbox" value="返品・トラブル" name="問い合わせ内容種別[]">返品・トラブル</label> <label><input type="checkbox" value="その他" name="問い合わせ内容種別[]">その他</label> </div> <textarea name="問い合わせ内容"></textarea>
あとは送信ボタンを確認画面を活用する場合は「確認画面へ」に変更します。
<p class="submit-wrap"><input type="submit" value="確認画面へ">
フォームプログラムの設定変更
今回は必須の内容がありますので「mail.php」を修正します。
「名前」「メールアドレス」を必須にしますので次のようになります。
$require = array('名前','メールアドレス');
メールアドレスの入力欄の指定も自動返信メールなどで利用されますので重要です。必ず変更しておきましょう。
$Email = "メールアドレス";
あとは送信後に表示されるページも設定できます。
「thanks.html」などで用意しておくことが望ましいでしょう。
フォームの隣に「mail.php」を配置してアップロード

このように送信フォームの隣に「mail.php」を配置します。
そうしたらこのままの構造でサーバーにアップロードしてください。
動作を確認したら完了です。
お疲れ様でした!


