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

締切り済みの質問

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

参考書を見ながらプログラムを作成したのですが、記述、もしくは設定が関係しているのでしょうか。
分かる方には非常にくだらないことかもしれませんが、ご教授お願い致します。

投稿日時 - 2007-02-05 00:55:16

QNo.2724601

困ってます

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

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

回答(4)

ANo.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

投稿日時 - 2007-02-07 02:46:36

お礼

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

投稿日時 - 2007-02-07 23:05:05

ANo.3

同じようなソースコードで同じエラーが起きた人がいましたよ。
本が同じなのかな?参考にしてみて下さい。

http://oshiete1.goo.ne.jp/qa2693003.html

参考URL:http://oshiete1.goo.ne.jp/qa2693003.html

投稿日時 - 2007-02-05 10:54:49

お礼

ご指摘ありがとうございました。
参考URLを参照いたしましたところ、無事メール送信が行えました。
phpinfo()のConfiguration File (php.ini) Pathとは別のphp.iniを変更していたため、php.iniの設定がうまくいっていなかったようです。
正しいパスのphp.iniを変更いたしましたところ、メールが送信できました。

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

投稿日時 - 2007-02-05 22:56:33

ANo.2

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

投稿日時 - 2007-02-05 06:05:26

お礼

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

投稿日時 - 2007-02-05 22:54:03

ANo.1

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

投稿日時 - 2007-02-05 01:06:17

お礼

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

投稿日時 - 2007-02-05 01:19:30

あなたにオススメの質問