← Works へ戻る

PHPお問い合わせフォーム

フォームは設置できたのに、送信したメールが届かない。
そういうサーバーのために、SMTPへ直接つないで送るフォームを作りました。

PHPお問い合わせフォームのPCでの表示

モックアップではなく、実際の画面をそのまま撮っています(1440px)。

やっていること

mail() や Sendmail に頼らず、SMTPサーバーへ直接つないで送信します。データベースも Composer も要りません。アップロードして設定ファイルを1つ置くだけで動きます。

  • SMTPへ直接つないで送信
  • データベース不要・Composer不要
  • PHP 5.6 〜 8.x で動作
  • 管理画面から送信内容をCSVで書き出し

買い切り型の有料製品です。note で販売しています。

どう作ったか

古いサーバーでも動くことを優先しました。新しい書き方を避け、追加のインストールを必要としない構成にしています。

PHP 5.6〜8.xSMTP買い切り

詰まったところ

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

1. 販売の直前に、自分のコードの穴を見つけた

課題
最終チェックで気づきました。管理画面のCSV書き出しで、送信内容が「=」で始まっていると、Excel がそれを数式として実行してしまいます。攻撃する側は送信するだけでよく、受け取った側が開いた瞬間に動きます。
やったこと
書き出すときに先頭へ引用符を付けて、文字列として扱わせるようにしました。
結果
販売前に直せました。作った本人が最後に一度、攻撃する側の目で見る——この工程を外さないようにしています。

2. 作れても、見つけてもらえない

課題
無料のフォームは、設置されるたびに配布元へのリンクが増える構造になっています。検索で上位に来るのはそのためです。
やったこと
その表示を消せることが、この製品の売りです。つまり、同じ土俵では戦えません。
結果
集客は解決できていません。製品としては動いていますが、届け方はこれから考えるところです。

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

メールで相談する