アプリ版:「スタンプのみでお礼する」機能のリリースについて

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>";
}
?>

A 回答 (2件)

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

補足日時:2003/11/11 00:49
    • good
    • 0

最初に、PHP全部をゴリっと削除してしまってはどうでしょう?


ただわたしは、PHPをきれいサッパリ削除する方法を知らないのですが。。

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

beginさん、ご存じです。。?(汗
    • good
    • 0
この回答へのお礼

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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!