wttks / mailform
PHP メールフォームフレームワーク。CSRF / Honeypot / レート制限 / AI スパム判定の多段防御、確認画面フロー、マルチフォーム共通設定、リアルタイムバリデーションを内蔵。
dev-main
2026-04-30 04:52 UTC
Requires
- php: ^8.2
- ext-curl: *
- ext-fileinfo: *
- ext-mbstring: *
- ext-sodium: *
- ext-zlib: *
- curl/curl: ^2.5
- phpmailer/phpmailer: ^6.9
Requires (Dev)
- phpunit/phpunit: ^11.0
This package is not auto-updated.
Last update: 2026-05-01 01:29:21 UTC
README
PHP メールフォームライブラリ。多段防御セキュリティ(CSRF / Honeypot / レート制限 / AI スパム判定)と入力途中データの一時保存(HttpOnly Cookie + 暗号化)を内蔵。
このリポジトリは Composer 配布用です。開発リポジトリは
wttks/mailform-source(モノレポ)から CI で自動的に subtree split されます。Issue / PR は開発リポジトリにお願いします。
インストール
composer require wttks/mailform
動作環境
- PHP 8.2 / 8.3 / 8.4 / 8.5(PHPUnit 全テスト OK)
- PHP 8.0 / 8.1 は未対応(独立型ヒント
true|string等が parse error) - 必須拡張: ext-mbstring / ext-fileinfo / ext-curl / ext-sodium / ext-zlib
主な機能
- バリデーション: 必須・型・正規表現・郵便番号・電話番号・フリガナ・日本語含有判定 ほか
- 動的宛先: フォーム値で送信先を切り替え(
map形式 / Closure) - 確認画面フロー: 入力 → 確認 → 送信 のセッション保持(添付ファイル持ち越し対応)
- マルチフォーム: 複数フォームで共通設定を共有
- 多段セキュリティ: CSRF / Honeypot / IP・セッションベースレート制限 / AI スパム判定
- i18n: 日本語デフォルト + 英語翻訳マップ同梱
- draft 機能: HttpOnly Cookie + sodium 暗号化で入力途中データを安全に一時保存
クイックスタート
require_once 'vendor/autoload.php'; $form = new \AIJOH\Form\Form([ 'verify' => [ 'csrfToken' => true, 'honeypot' => ['name' => 'website'], ], 'validation' => [ 'name' => ['title' => 'お名前', 'rule' => 'required|string|max:100'], 'email' => ['title' => 'メールアドレス', 'rule' => 'required|email'], 'message' => ['title' => 'お問い合わせ内容', 'rule' => 'required|string|max:2000'], ], 'sender' => [ '管理者通知' => [ 'from' => 'no-reply@example.com', 'to' => 'admin@example.com', 'subject' => '【お問い合わせ】{name}様より', 'body' => "お名前: {name}\nメール: {email}\n\n{message}", ], ], ]); $form->receive(); // POST なら処理、GET なら何もしない
ドキュメント
開発リポジトリ wttks/mailform-source の docs/ 配下:
README.md— プロジェクト概要・クイックスタートdocs/CONFIG.md— 設定リファレンス(draft 機能含む)docs/SECURITY.md— セキュリティ機能の詳細docs/DEPLOY.md— 本番デプロイガイドdocs/MULTIFORM.md— マルチフォーム構成docs/CUSTOM_VALIDATION.md— カスタム業務検証docs/PRIVACY_DRAFT.md— draft 機能のプライバシーポリシー文面サンプルdocs/snippets/— HTML スニペット集
サンプル
開発リポジトリ wttks/mailform-source の public/ 配下に 4 サンプル同梱:
contact/— 直接送信フォームconfirm-sample/— 確認画面付きフォームhtml-sample/— 純 HTML + JS 注入型draft-sample/— draft 機能を有効化したフォーム
開発・コントリビューション
開発・Issue・PR は開発リポジトリへ:
https://github.com/wttks/mailform-source
ライセンス
MIT License — LICENSE 参照