こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

mb_send_mail()が使えない

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()ではエラーが発生しません。

●OS:TurboLinux7
●言語:PHP4.3.3
●phpのconfigure時のオプション:
 ./configure --with-apxs=/usr/sbin/apxs \
 --enable-mbstring
●/usr/local/lib/php.iniのsendmail_path設定:
 sendmail_path = /var/qmail/bin/sendmail
●テスト用PHPのソース(実行すると常に「メール送信エラー」になります)
<?php
$ans = mb_send_mail("メールアドレス","件名","本文");
if ($ans) {
print "<P>メール送信完了</P>";
}
else {
print "<P>メール送信エラー</P>";
}
?>

投稿日時 - 2003-11-09 17:25:50

QNo.701308

困ってます

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

最初に、PHP全部をゴリっと削除してしまってはどうでしょう?
ただわたしは、PHPをきれいサッパリ削除する方法を知らないのですが。。

「ディレクトリを削除してApacheの設定を変更!!」で
済むとも思えなくて。。

beginさん、ご存じです。。?(汗

投稿日時 - 2003-11-11 02:07:49

お礼

PHPの削除方法が私もよくわからなかったのですが、下記のことをして解決しました。
1./usr/local/lib/phpディレクトリをmvで名前変更
2.再度configure
3.make cleanを実行
4. suでrootに変身
5. make install

ひょっとしたらmake cleanコマンド以降のみでよかったのかもしれません。
# ただ、まだ送信されたメールの日本語が文字化けするという問題が発生しているのですが、今回はこれにて完了といたします。

どうもありがとうございました。

投稿日時 - 2003-11-13 00:46:16

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

sendmailではなくてqmailを使っておられるようにお見受けしますが、

PHPは、インストール時にsendmailが見つからなかった場合、
mail() という関数をインストールしないようです。

mb_send_mail() はただ mail() へパイプしているだけなので、
mail() が使えない場合は、mb_send_mail() も使用できません。

makeで作成されるphp_config.hに
#define HAVE_SENDMAIL という行を追加してから
再度インストールしてみて下さい。

投稿日時 - 2003-11-10 03:10:36

補足

./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に失敗しているのでしょうか?

投稿日時 - 2003-11-11 00:49:03

あなたにオススメの質問