フォームの必須項目を簡単管理!デザイン自由・設定は `config.php` でOK
ファイル構成と設置方法
📁 mail_form/
├── index.php (メールフォームの入力ページ)
├── MailHandler.php (メール送信処理)
├── config.php (設定ファイル)
├── thanks.php (送信完了ページ)
├── test_mail.php (メール送信テスト用)
設置方法
- mail_form/ フォルダを サーバーにアップロード
- config.php を開いて メールアドレスなどの設定を変更
- index.php で フォームデザインをカスタマイズ
- 動作確認 をするため、test_mail.php をブラウザで開く
- 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)を実装して安全に運用
デモフォーム
自動返信メールへダウンロードリンクをつけております。