- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPでメールが送信できない)
PHPでメールが送信できない
このQ&Aのポイント
- 弊社のお問い合わせフォームをPHPで作成し、お客様の環境でメールを送信できない問題が発生しています。
- お客様によるチェックと弊社によるチェックを行いましたが、原因が特定できません。
- 誰か原因をご教示いただける方はいらっしゃいますか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
がると申します。 一つには、きちんとsendmailが処理できているのかを、/var/logあたりのログで確認されるとよろしいかと思うのですが。 mail関数の戻り値は「送れたかどうか」ではないので。戻り値チェックはちょっと微妙かもしれません。 もう一つ…ぶっちゃけPHPのmail関数は事故が多いので(苦笑 popen とかを使って、普通にsendmailプロセス立ち上げて…という関数なりclassなり切ってしまったほうが、多分早いです。 原因も追及しやすいですし。 以上あまり参考にはならないかもしれませんが、逃げ道の方法を書いてみました。
お礼
回答ありがとうございます。 popen()ですね。 試してみます。 普段、PHPで開発することが多いのですが、今回のケースは初めてでしたので いろいろ悩んでしまって困っていました。
補足
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に問題があるのでしょうか?