• 締切済み

mb_send_mail()に関しまして

初めて投稿させて頂きます。 PHPを触り始めて間もない者ですが、よろしくお願い致します。 現在、PHPの勉強を兼ねまして空メールを送るプログラムを作成しております。 フォームにボタンを1つ設け、そのボタンを押下すると指定のあて先に空メールを送るという簡単なものです。 【html内のボタンの設定】 <form name="top" method="post" action="a.php"> <input type="submit" value="空メールを送る"/> </form> 【a.php(正しく送れたかを知るためにメッセージを表示するようにしてあります)】 <html> <head> PHPメールテスト送信 </head> <body> <? $address = '送信先メールアドレス'; $subject = ''; $message = 'PHPからのテストメール'; $header = "Content-Type: text/plain;charset=iso-2022-jp"; mb_language("Japanese"); if(mb_send_mail($address,$subject, mb_convert_encoding($message,"JIS","EUC-JP"),$header))←エラー行 { print("送信成功!!"); } else { print("エラー:送信失敗!!"); } ?> </body> </html> このプログラムを実行すると以下のエラーが発生します。 Warning: mb_send_mail() [function.mb-send-mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\Program Files\xampp\htdocs\top.php on line 15 参考書を見ながらプログラムを作成したのですが、記述、もしくは設定が関係しているのでしょうか。 分かる方には非常にくだらないことかもしれませんが、ご教授お願い致します。

みんなの回答

noname#30334
noname#30334
回答No.4

No.3です。 下記のように$headerでFromを指定すれば良いです。 CCやBCCを付ける場合も同様のやり方です。改行コードもお忘れなく。 $strMailFrom = "xxx@xxx.com"; //送信元メアド $header = "Content-Type: text/plain;charset=iso-2022-jp\r\n"; $header .= "From: ".$strMailFrom;

参考URL:
http://oshiete1.goo.ne.jp/qa2693003.html
begst
質問者

お礼

ご返答ありがとうございます。 ご指摘の方法でもメール送信に成功いたしました。 大変勉強になります。 今後も機会がありました際はよろしくお願い致します。

noname#30334
noname#30334
回答No.3

同じようなソースコードで同じエラーが起きた人がいましたよ。 本が同じなのかな?参考にしてみて下さい。 http://oshiete1.goo.ne.jp/qa2693003.html

参考URL:
http://oshiete1.goo.ne.jp/qa2693003.html
begst
質問者

お礼

ご指摘ありがとうございました。 参考URLを参照いたしましたところ、無事メール送信が行えました。 phpinfo()のConfiguration File (php.ini) Pathとは別のphp.iniを変更していたため、php.iniの設定がうまくいっていなかったようです。 正しいパスのphp.iniを変更いたしましたところ、メールが送信できました。 そこで、もう1つお聞きしたいことがあります。 php.ini内の「sendmail_from」で指定したアドレスが送信者のアドレス(固定)となるのですが、空メールを送信した人のメールアドレス(可変)を指定するにはどうしたらよいのでしょうか。 (後々、メールアドレスを主キーに設定してDBの構築をしていこうと思っております。) 素人の質問で大変申し訳ございませんが、よろしくお願い致します。

  • okjbnm
  • ベストアンサー率34% (8/23)
回答No.2

php.iniで、sendmailのパス記述をするところがあったかと思いますが、 そのパス記述が間違っていないかどうかを確認してみてください。

begst
質問者

お礼

phpinfo()のConfiguration File (php.ini) Pathとは別のphp.iniを変更していたため、php.iniの設定がうまくいっていなかったようです。 正しいパスのphp.iniを変更いたしましたところ、メールが送信できました。 ありがとうございました。 php.ini内の「sendmail_from」で指定したアドレスが送信者のアドレス(固定)となるのですが、空メールを送信した人のメールアドレス(可変)を指定するにはどうしたらよいのでしょうか。 (後々、メールアドレスを主キーに設定してDBの構築をしていこうと思っております。) 素人の質問で大変申し訳ございませんが、よろしくお願い致します。

  • NINJA104
  • ベストアンサー率43% (133/306)
回答No.1

phpのスクリプト側の問題ではなく、php.iniというphpの設定ファイル側の問題です。

begst
質問者

お礼

早速のご返答ありがとうございます。 php.iniの「sendmail_from = me@example.com」の箇所がコメントになっておりましたのでここがコメントを解除すればよろしいでしょうか。 その他にどこか設定する箇所はありますでしょうか。 よろしくお願い致します。

関連するQ&A