• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPでメールが送信できない)

PHPでメールが送信できない

このQ&Aのポイント
  • 弊社のお問い合わせフォームをPHPで作成し、お客様の環境でメールを送信できない問題が発生しています。
  • お客様によるチェックと弊社によるチェックを行いましたが、原因が特定できません。
  • 誰か原因をご教示いただける方はいらっしゃいますか?

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

  • ベストアンサー
  • galluda
  • ベストアンサー率35% (440/1242)
回答No.1

がると申します。 一つには、きちんとsendmailが処理できているのかを、/var/logあたりのログで確認されるとよろしいかと思うのですが。 mail関数の戻り値は「送れたかどうか」ではないので。戻り値チェックはちょっと微妙かもしれません。 もう一つ…ぶっちゃけPHPのmail関数は事故が多いので(苦笑 popen とかを使って、普通にsendmailプロセス立ち上げて…という関数なりclassなり切ってしまったほうが、多分早いです。 原因も追及しやすいですし。 以上あまり参考にはならないかもしれませんが、逃げ道の方法を書いてみました。

holyhack
質問者

お礼

回答ありがとうございます。 popen()ですね。 試してみます。 普段、PHPで開発することが多いのですが、今回のケースは初めてでしたので いろいろ悩んでしまって困っていました。

holyhack
質問者

補足

php.iniのsafe_modeが「Off」の状態で、popen()を使用して、直接コマンドを実行してみました。 結果ですが、sendmailが正しく処理できていないようです。 1. /var/log/maillogにログが残らない 2. メールも送信されない 以下が実行したスクリプトになります。 <?php $pid = popen("/usr/sbin/sendmail -f 私のメールアドレス 私のメールアドレス", "w"); fputs($pid, "From: 私のメールアドレス\n"); fputs($pid, "To: 私のメールアドレス\n"); fputs($pid, "Subject: test mail\n"); fputs($pid, "Content-Type: text/plain; charset=EUC-JP\n"); fputs($pid, "Content-Transfer-Encoding: 7bit\n"); fputs($pid, "\n"); fputs($pid, "テストメール\n"); fputs($pid, "bye.\n"); pclose($pid); $> PHPに問題があるのでしょうか?

関連するQ&A