- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mb_send_mail()が使えない)
mb_send_mail()が使えない
このQ&Aのポイント
- WebからPHPのmb_send_mail関数を使用してメールを送信しようとしていますが、なぜか送信されません。原因についてお分かりになればお教えください。
- コマンドライン上でのmailコマンドによるメール送信は可能な状態です。sendmailの代わりにqmailをインストールしているため、/usr/sbin/sendmailから/var/qmail/bin/sendmailへシンボリックリンクを貼っています。
- また、PHPのmail()は"Call to undefined function: mail()"エラーとなりますが、mb_send_mail()ではエラーが発生しません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
最初に、PHP全部をゴリっと削除してしまってはどうでしょう? ただわたしは、PHPをきれいサッパリ削除する方法を知らないのですが。。 「ディレクトリを削除してApacheの設定を変更!!」で 済むとも思えなくて。。 beginさん、ご存じです。。?(汗
その他の回答 (1)
- duckling
- ベストアンサー率47% (88/185)
回答No.1
sendmailではなくてqmailを使っておられるようにお見受けしますが、 PHPは、インストール時にsendmailが見つからなかった場合、 mail() という関数をインストールしないようです。 mb_send_mail() はただ mail() へパイプしているだけなので、 mail() が使えない場合は、mb_send_mail() も使用できません。 makeで作成されるphp_config.hに #define HAVE_SENDMAIL という行を追加してから 再度インストールしてみて下さい。
質問者
補足
./configure、makeを行い、php_config.hに「#define HAVE_SENDMAIL 1」があるのを確認してからmake installまで再度行ってみましたが、状況に変化が出ませんでした。 # configure時のオプションに一部誤りがありました。 # --with-apxs=/usr/local/apache/bin/apxsでした。 # 申し訳ありません。 phpinfo()で確認してみると、どうも最初のインストール時からPHPのBuild日付が変わっていないようです。 すでにApacheにモジュールが組み込まれているために、make installに失敗しているのでしょうか?
お礼
PHPの削除方法が私もよくわからなかったのですが、下記のことをして解決しました。 1./usr/local/lib/phpディレクトリをmvで名前変更 2.再度configure 3.make cleanを実行 4. suでrootに変身 5. make install ひょっとしたらmake cleanコマンド以降のみでよかったのかもしれません。 # ただ、まだ送信されたメールの日本語が文字化けするという問題が発生しているのですが、今回はこれにて完了といたします。 どうもありがとうございました。