• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPでお問い合わせフォームを作りたい!)

PHPでお問い合わせフォームを作るための参考書と学習方法

このQ&Aのポイント
  • 簡単なものから複雑なものまで、PHPでお問い合わせフォームを作る方法を学びましょう。
  • 『はじめての人のためのかんたんPHP + MySQL入門』や『よくわかるPHPの教科書』などの参考書がありますが、メールの問題があるかもしれません。
  • セキュリティー面でも安心なお問い合わせフォーム作成の方法を学ぶためには、実際のサイトで使用されている方法を学習することがおすすめです。

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

「メールが届かない」にもいろいろありますが、 >例えば、Yahooメールには届かず、hotmailでは迷惑メールとして受信するなど。 ということであれば、問題はphpスクリプトではありません。そのphpスクリプトが動作しているサーバの問題です。Yahooやhotmailで拒否される一番大きな要因は『送信元サーバのIPアドレスがブラックリストに載っている』ことです。 共用のレンタルサーバであれば、同じサーバを使っているユーザに不心得者が居れば一緒に拒否されてしまいますす、参照しているブラックリストによっては一定の範囲をまとめて載せてしまうこともあります。 これを避けるためには、php標準のmail関数でwebサーバのsendmailを使うのではなく、PEAR::Mailなどを使って外部のSMTPサーバ(ご自分のISPのSMTPサーバなど)を経由させます。ご自分のISPのSMTPが、ISPのネットワーク外から(SMTP認証などで)利用可能であれば、そちらを使うのが確実です。 逆に言うと一般的に配布されている『お問い合わせフォーム』のメール送信は、送信先メールサーバがphpスクリプトを実行しているwebサーバと同じであること(レンタルサーバであればこのケースが多いハズです)を想定しています。なのでIPアドレスベースで拒否されることを考慮していませんしSMTP認証まで使って外部SMTPを使う必要がないのです。 たしかに「問い合わせたユーザーに確認メールを送る」場合もあるんでしょうけど、そのメールアドレスに送ることが問題ないのかどうかも含めて(「いたずら」に使われる可能性はないのかなど)検討すべきだと思います。

mark28
質問者

お礼

ありがとうございましたm(^^)m 以前は、sendmailを使用していたのですが、 使用できなサーバーであったため、 別のものに、かえたところ、通常に動くようになりました。

その他の回答 (1)

回答No.2

>しかしここに乗っていたものでは、メールの届かないものばかりでした。 #1の問題意外にもこれメールサーバが適切に設定されてない場合に起きる。 定番だとlocalhostにドメイン設定がなっているとこの手の不都合は起きやすい。

mark28
質問者

お礼

ありがとうございましたm(^^)m どうやら、sendmailとサーバーの相性の問題だったようです。 結局、参考書の通りではなく、以前別の機会に使用したものを引用して制作したところ、 動くようになりました。

関連するQ&A