フォームの必須項目を簡単管理!デザイン自由・設定は `config.php` でOK

ファイル構成と設置方法

📁 mail_form/
├── index.php (メールフォームの入力ページ)
├── MailHandler.php (メール送信処理)
├── config.php (設定ファイル)
├── thanks.php (送信完了ページ)
├── test_mail.php (メール送信テスト用)

設置方法

  1. mail_form/ フォルダを サーバーにアップロード
  2. config.php を開いて メールアドレスなどの設定を変更
  3. index.php で フォームデザインをカスタマイズ
  4. 動作確認 をするため、test_mail.php をブラウザで開く
  5. index.php からフォームを送信して、thanks.php に遷移することを確認

メールフォームのカスタマイズ

フォーム項目の追加・削除(index.php)

フォームの項目は index.php に記述されています。
追加や削除する場合、name="〇〇" の部分を変更してください。

フォームの項目は index.php に記述されています。
追加や削除する場合、name="〇〇" の部分を変更してください。

フォームの name と config.php の mail_fields は一致させること!

必須項目の設定(config.php)

config.php にある required_fields に追加すれば、必須項目にできます。

例:お名前とメールを必須にする

'required_fields' => ['お名前', 'Email'],

メールの送信設定

config.php の設定項目

設定項目 説明
admin_email 管理者のメールアドレス
from_email 送信元メールアドレス(できるだけサーバードメインのメールを使用)
subject_admin 管理者宛のメールの件名
subject_user ユーザー宛のメールの件名
auto_reply 自動返信メールの有無(true / false)
mail_fields 送信するメールの項目(index.php の name と一致させる)

例:config.php の設定

'mail_config' => [
'admin_email' => 'admin@example.com',
'from_email' => 'noreply@example.com',
'subject_admin' => 'お問い合わせがありました',
'subject_user' => 'お問い合わせありがとうございます', ],

セキュリティ対策

XSS対策(サニタイズ処理)

MailHandler.php の sanitize() で不要な文字列を削除しています。

private function sanitize($data) {
    return array_map('trim', $data);
}

CSRF対策(トークンチェック)

追加する場合は index.php に以下のコードを追加

session_start(); $_SESSION['token'] = bin2hex(random_bytes(32));

MailHandler.php 側でトークンチェックをする

if ($_SESSION['token'] !== $_POST['token']) { die("不正なアクセスです"); }

まとめ

  • フォームをカスタマイズするには index.php を編集する
  • 必須項目の設定は config.php で変更する
  • 送信設定(メールアドレスや件名)は config.php で調整
  • 動作確認は test_mail.php で行い、エラーは mail.log を確認
  • セキュリティ対策(XSS, CSRF)を実装して安全に運用

デモフォーム

自動返信メールへダウンロードリンクをつけております。