10秒目をつむったら…

かんなりのPHP初心者で「10日でおぼえるPHP5入門教室」という本で初めてPHPを勉強しています。

http://www.webmate.ne.jp/samples/php10.jsp
の4日目の1時限目をしているのですが、何回やってもメールが受信できません。ブラウザで入力して送信してもエラーも出ないのでどうしたらいいのかわかりません。
PHPの内容は以下の通りです。

mail_input.phpの中身
<html>
<head>
<title>10日でおぼえるPHP5入門教室(アンケート)</title>
</head>
<body>
<h1 style="background:#cccccc">
10日でおぼえるPHP5入門教室(アンケート)</h1>
<form method="POST" action="sendmail.php">
<input type="hidden" name="_email" value="**@yahoo.co.jp" />
<input type="hidden" name="_subject" value="10日でおぼえるPHP5入門教室" />
<input type="hidden" name="_result"
value="<?php print($_SERVER['PHP_SELF']);?>" />
<table border="0">
<tr>
<th align="right">名前:</th>
<td><input type="text" name="name" size="20" maxlength="30" /></td>
</tr><tr>
<th align="right">E-Mail:</th>
<td><input type="text" name="_from" size="50" maxlength="255" /></td>
</tr><tr>
<th align="right" valign="top">自由記入欄:</th>
<td><textarea name="memo" cols="50" rows="5"></textarea></td>
</tr>
</table>
<input type="submit" value="送信" />
<input type="reset" value="クリア" />
</form>
</body>
</html>

・sendmail.phpの中身は
<?php
$header_info="From: ".$_POST['_from']."\nContent-Type: text/plain;charset=ISO-2022-JP\nX-Mailer: PHP/".phpversion();
$body="■■".$_POST['_subject']."■■\n\n";
foreach($_POST as $key=>$value){
if(!strstr($key,"_")){
$body.="[".$key."]".$value."\r\n";
}
}
mb_send_mail($_POST['_email'],$_POST['_subject'],$body,$header_info);
header("Location: ".$_POST['_result']);
?>

という感じです。php.iniもYAHOO!のフリーメールなので
SMTP=smtp.mail.yahoo.co.jp
sendmail_from=**@yahoo.co.jp

拡張関数が使えるように
extension_dir="c:/php/ext"
extension=php_mbstring.dll
としました。

しかし全く送れません。Yahoo!のフリーメールだからでしょうか??
すいません。ど素人なのでわかりやすく教えて下さい。お願いします。

A 回答 (3件)

>他のレンタルサーバーの場合、Outbound Port25 Blockingで止められないんでしょうか??



レンタルサーバの場合は、そこのサーバのSMTPを使えますから、特に設定の必要もなく、
mb_send_mailでメールを送れるはずです。


>ほとんどのISPがこれをやっているてことなんでしょうか??

そうですね。SPAM対策のためにやってる所は多いと思います。


>またフリーで簡単なサーバーとかはないんでしょうか??

最近のレンタルサーバはほとんどのことがGUIで管理できるので、
難しいことは無いですよ。フリーのところは知りませんが、
月額数百円程度のサーバもあります。
負荷とか安定性を考えなければ、勉強用には、十分だと思います。
    • good
    • 0
この回答へのお礼

返事ありがとうございますっ。
勉強させて頂きます。

お礼日時:2008/10/06 19:27

>理由はなんででしょうか?


プログラムミスでサーバダウンさせたらどうするんですか?
そうなったらどれだけの人に迷惑になるか考えられませんか?
そうなったらどれだけ損害になるか考えられませんか?
自分は大丈夫だとか変な自身を持っているのですか?
    • good
    • 0

smtpがsmtp.mail.yahoo.co.jpな場合、mb_send_mailでは送信できないと思います。


理由は
1)Outbound Port25 Blocking を使用している
2)SMTP認証が必要

上のポートに関しては、ini_set("smtp_port",587); とすることでも
解決できますが、下の認証に関してはどうにも出来ませんね。

おそらく、勉強用にWindowsマシンにPHPを入れているものと思われますが、
どこか安いレンタルサーバーを借りたほうが、変な設定で悩まなくてすむかもしれませんよ。

参考URL:http://ja.wikipedia.org/wiki/Outbound_Port_25_Bl …
    • good
    • 0
この回答へのお礼

返事ありがとうございます!!

他のフリーメールとか試して無理だったのもそういった理由なのかもしれませんね。

他のレンタルサーバーの場合、Outbound Port25 Blockingで止められないんでしょうか??

ほとんどのISPがこれをやっているてことなんでしょうか??

またフリーで簡単なサーバーとかはないんでしょうか??

凄い初心者ですいません。。

お礼日時:2008/10/03 14:51

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