← Works へ戻る

PHPお問い合わせフォーム

フォームは設置できたのに、メールが届かない。

そんな環境でも使えるように、SMTPサーバーへ直接つないで送信するお問い合わせフォームを作りました。

PHPお問い合わせフォームの管理画面

実際の管理画面です。届いたお問い合わせを一覧で確認し、CSVで書き出せます。

なぜ作ったか

レンタルサーバーによっては、PHPの mail() で送ったメールが届かなかったり、迷惑メールに入ったりすることがあります。

そこで、サーバーのメール送信機能に頼らず、SMTPへ直接つないで送れるフォームを作りました。

古いサーバーでも、なるべく手間なく設置できることを優先しています。

できること

  • SMTPへ直接つないでメールを送信
  • データベース不要
  • Composer不要
  • PHP 5.6〜8.xに対応
  • お問い合わせ内容を管理画面で確認
  • CSVでの書き出し

MITライセンスで無料公開しています。
GitHubからダウンロードして使えます。

どう作ったか

追加のライブラリやデータベースを必要としない構成にしています。

サーバーへアップロードして設定ファイルを置くだけで使えるようにし、PHP 5.6の環境でも動く書き方に揃えました。

PHP 5.6〜8.xSMTPMIT

詰まったところ

うまくいかなかったものも、そのまま書いています。

公開直前に、自分のコードの穴を見つけた

最終チェックで、CSVの書き出しに問題が見つかりました。

お問い合わせ内容が「=」などで始まっていると、CSVをExcelで開いたときに数式として解釈される可能性があります。

そこで、対象となる値を文字列として扱うように処理を追加しました。

作った本人が最後に一度、攻撃する側の目で見る。
この確認は外さないようにしています。

作っただけでは、なかなか届かなかった

もともとは買い切りのフォームとして販売していました。

機能や設置のしやすさにはこだわりましたが、思ったほど販売にはつながりませんでした。

作ることと、それを知ってもらうことは別でした。

そこで販売を終了し、現在はMITライセンスでGitHubに無料公開しています。

これで広まるかは、まだ分かりません。しばらく試してみようと思っています。

既存のフォームが動かない、といったご相談も受け付けています。

メールで相談する