• 締切済み

undefined function mb_send_mail で、メール送信できず。

初めてPHP開発を行っています。 環境:WindowsXP、Apache/2.0.59、PHP/5.2.1 PHPプログラム内で、 mb_send_mail を使用しています。 Apacheのerror.logに以下のlogが表示され、 メール送信ができません。 ~~~~~~~~~~~~~~~~~~~~~~~~~ Unable to load dynamic library 'php_mbstring.dll' Unable to load dynamic library 'php_snmp.dll' PHP Fatal error: Call to undefined function mb_send_mail() ~~~~~~~~~~~~~~~~~~~~~~~~~ WindowsでPHP5のインストール時のextensionsの 指定が不足していると思いますが、 どれかが分かりますでしょうか? 初歩的な質問ですが、宜しくお願い致します。

  • PHP
  • 回答数1
  • ありがとう数0

みんなの回答

noname#26650
noname#26650
回答No.1

> Unable to load dynamic library 'php_mbstring.dll' > Unable to load dynamic library 'php_snmp.dll' php.ini という設定ファイルをエディタで開きます。 見つからない2つの dll ファイルの名前を検索します。 その行の先頭に、コメント行を表わす ; (セミコロン)が付いていると思います。 そのセミコロンを削除し、その行の設定を活かします。 修正した php.ini を保存します。 Apache をリスタートします。 くだんのメール送信を試みます。 おしまい。

BlueSnow7
質問者

補足

ご回答ありがとうございます。 > そのセミコロンを削除し、その行の設定を活かします。 セミコロンを生かしただけでは、動作しませんでした。 WindowsXP から PHPをインストールする際、 (Extensions -> 【Multi-Byte String】で、) Multi-Byte String のインストールが必要でした。 アドバイスありがとうございます。

関連するQ&A

  • Call to undefined function mb_strlen()

    Windows XP SP3 Apache2.2.8 PHP5.2.6 --- mb_strlen()関数が使えません。 「Call to undefined function mb_strlen()」 というエラーが表示されます。 php.iniの設定の問題なのでしょうか? [mbstring]の部分だけ貼り付けておきます。 [mbstring] mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_output = UTF-8 mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none; mbstring.func_overload = 7

    • ベストアンサー
    • PHP
  • mb_send_mailでのメール送信がエラーしてしまいます。

    PHPを独習しています。 mb_send_mailでのメール送信でつまづいてしまっており、 ご回答いただければ幸いです。 mb_string等の設定は正常に出来ていると思うのですが、 下記のとおり、mailserverに接続できない旨のエラーが 表示されてしまいます。 ●エラー本文 Warning: mb_send_mail() [function.mb-send-mail]: Failed to connect to mailserver at "(契約サーバー)" port 465, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files\Apache Group\Apache2\htdocs\sample\Part4\4-8\4-8-1.php on line 11 ●PHP本文 $mailto = "(自分のアドレス)"; $subject = "test"; $content = "本文test"; $mailfrom = "From:aaaa@bbb.ccc"; $mailfrom="From:" .mb_encode_mimeheader("木村") ." <ddd@eee.fff>"; if (mb_send_mail($mailto,$subject,$content,$mailfrom)){ echo "送信成功"; }else{ echo "送信失敗"; もしお分かりになる方がいれば、 どうかご教授のほど、よろしくお願いします。

    • ベストアンサー
    • PHP
  • 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>"; } ?>

    • ベストアンサー
    • PHP
  • phpでmb_send_mailを用いてメールの送信を試みておりますが、うまくいきません

    phpでmb_send_mailを用いてメールの送信を試みておりますが、うまくいきません。 php.iniの現時点における設定は、以下の通りです。 [mail function] ; For Win32 only. ;SMTP = localhost ;smtp_port = 25 ; For Win32 only. ;sendmail_from = ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). sendmail_path = "sendmail -t -i" mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = auto mbstring.http_output = UTF-8 mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none; mbstring.func_overload = 0 ;mbstring.strict_encoding = Off なお、phpのスクリプトでは、mb_send_mail関数を呼ぶ直前に、  mb_language("ja");  mb_internal_encoding("utf-8"); を実行しております。 また、html部では、<meta…タグにおいて、charset=UTF-8の宣言を行い、 このhtml部を含むphpファイルは、文字コードUTF-8にて格納し直しました。 原因をいろいろ探ったのですが、自力では無理のようです。 原因と考えられる点をどうか教えて頂くようにお願い致します。

    • ベストアンサー
    • PHP
  • Fatal error: Call to undefined function mb_language

    質問させていただきます。 以下の内容を実行すると、「Fatal error: Call to undefined function mb_language」と表示され、メールの送信が行えず、 過去の事例などから、php.iniのmbstringの設定や、 extension=php_mbstring.dllの設定を行いましたが、 現象は変わりませんでした。 phpinfoで確認しても、マルチバイトの設定が表示されず困っております。 mb_language("Ja"); mb_internal_encoding("SJIS"); if(mb_send_mail($to, $subject, $msg, $header)) 設定は以下のようにしました。 extension=php_mbstring.dll ※コメントを解除 ・ ・ [mbstring] ; language for internal character representation. mbstring.language = Japanese ; internal/script encoding. ; Some encoding cannot work as internal encoding. ; (e.g. SJIS, BIG5, ISO-2022-*) mbstring.internal_encoding = UTF-8 ; http input encoding. mbstring.http_input = pass ; http output encoding. mb_output_handler must be ; registered as output buffer to function mbstring.http_output = pass ; enable automatic encoding translation according to ; mbstring.internal_encoding setting. Input chars are ; converted to internal encoding by setting this to On. ; Note: Do _not_ use automatic encoding translation for ; portable libs/applications. mbstring.encoding_translation = off ; automatic encoding detection order. ; auto means mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII ; substitute_character used when character cannot be converted ; one from another mbstring.substitute_character = none; ; overload(replace) single byte functions by mbstring functions. ; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), ; etc. Possible values are 0,1,2,4 or combination of them. ; For example, 7 for overload everything. ; 0: No overload ; 1: Overload mail() function ; 2: Overload str*() functions ; 4: Overload ereg*() functions mbstring.func_overload = 0

    • ベストアンサー
    • PHP
  • mb_send_mail について

     お世話になります。 Linux1.3 + Qmail の構成のメールサーバーとApache1.3+php4の Webサーバーのphp からmb_send_mail関数でメールを飛ばしても受信できません(エラーも出ません) yahooメールなど他のところへは問題なく飛ばせるのですが 同じネットワーク内のドメインに対してはメールが出せない状態です。 メールソフトからの送信では問題ありません。 何か解決法はありますでしょうか?

    • 締切済み
    • PHP
  • PHP関数mb_send_mailで送信すると件名が文字化けしてしまいます。

    PHP関数mb_send_mailでメールの送信しているのですが、件名だけが文字化けしてしまいます。 Windows2000Server+IIS ■PHPソース mb_send_mail($strMail,mb_convert_encoding("あいうえお","JIS","auto"),mb_convert_encoding("かきくけこ","JIS","auto"),$header); ■PHP.INI設定 extension=php_mbstring.dll SMTP = localhost smtp_port = 25 sendmail_from = sample@sample.jp mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = SJIS mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none; ■文字化けするSubject Subject: =?US-ASCII?B?GyRCJCIkJCQmJCgkKhsoQg==?= このPHPソースを別のレンタルサーバにいれ、送信すると文字化けせずに届きます。 なぜか、受信メールの文字コードがUS-ASCIIになっています。どうすればいいのでしょう? 誰かたすけてくださいーー

  • mb_send_mailでメール送信できない

    次のようなコードを使っているのですが、メールも送信できていません。 error_reportingでエラーをチェックしようとしても何も表示されません。 ブラウザには false しか表示されません。 サーバーはxserber,php5.3を利用しています。 メールアドレスの変更、サブジェクトを空、ボディを空、など試してみましたが、 falseのままで一度も成功しません。 phpファイルはUTF-8で作成しています。 ずっと悩んでいます。よろしくお願いします。 function sendMail( $to, $subject, $body ){ error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); //言語設定、内部エンコーディングを指定する mb_language("japanese"); mb_internal_encoding("UTF-8"); $from = FROM_MAIL; //送信 if( mb_send_mail($to,$subject,$body,"From:".$from) ) echo "true"; else echo "false"; }

    • ベストアンサー
    • PHP
  • mb_send_mailを実行するとエラーになります

    Warning: mb_send_mail() [function.mb-send-mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in ・・・・ XPにPHPとアパッチを入れて <?php $mlfr = "xxxx@nifty.com"; $mlto = "xxxx@mail.goo.ne.jp"; mb_internal_encoding("EUC-JP"); $mlsb = "たいとる"; $mlms = "ないよう"; $mlhd = "from: $mlfr\r\n"; mb_send_mail($mlto,$mlsb,$mlms,$mlhd,"-f".$mlfr); ?> を実行してもメールが送られません XPにメールサーバを入れなければならないのでしょうか?

    • ベストアンサー
    • PHP
  • Fatal error: Call to undefined function mb_convert_kana() について

    Fatal error: Call to undefined function mb_convert_kana() は、マルチバイトが使えないためと、ネットで見つけたのですが、PHPを ./configure --with-postgresql --without-mysql --with-apxs2=/usr/local/apache2/bin/apxs --with-mbstring --with-mbregex で、コンパイル⇒make⇒make installしたのですが、どこか間違っているのでしょうか? 因みにPHP5で、/usr.local/php.iniのmbstringのところは、全てコメントです。 よろしくご教示お願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう