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

解決済みの質問

phpのシンプルなメールフォーム

あるサイトにて、単一phpのメールフォームのソースをコピーし、使用としましたが、
設定したメールアドレスに、送信ボタンを押しましたが、
受信されません。

 ・送信後、「メールを送信しました」と表示されます。
 ・送信のあて先は、何も反応なし。
 ・ソースの「●●@●●」はダミーです。

以下ソースです。原因がわかりますでしょうか。ご教授のほどよろしくお願いします。
――――――――――――――――――――――――――――――――――――
<?php
// 送信フラグ
$send_flg = false;
// エラーメッセージ
$err_msg = array();
// 送信ボタンを押した後の処理
if ($_POST["post_flg"]) {
// エラー
if ($_POST["name"] == "") {
$err_msg[] = "「お名前」は必須です";
}
if ($_POST["email"] == "") {
$err_msg[] = "「メールアドレス」は必須です";
}
// エラーが無ければ送信
if (count($err_msg) == 0) {
// 宛先
$mail_to = "●●@●●";
// 送信元アドレス
$mail_from = "form@example.com";
// 件名
$mail_subject = "メールフォームから送信がありました";
// 本文
$mail_body = "";
$mail_body.= "■お名前\n".$_POST["name"]."\n\n";
$mail_body.= "■メールアドレス\n".$_POST["email"]."\n\n";
$mail_body.= "■コメント\n".$_POST["comment"];
// 送信処理
mb_language("Japanese");
mb_internal_encoding("UTF-8");
mb_send_mail($mail_to, $mail_subject, $mail_body, "From: <".$mail_from.">");
$send_flg = true;
$_POST = array();
}
}
?>
<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>メールフォーム</title>
</head>

<body>
<?php
// 初期フォーム表示
if (!$send_flg) {
?>

<h1>メールフォーム</h1>

<?php
// エラーメッセージがある場合
if (count($err_msg) > 0) {
?>
<p style="color:red;">
<?php foreach ($err_msg as $val) { ?>
※<?php echo $val ?><br>
<?php } ?>
</p>
<?php } ?>

<form action="mail.php" method="post">

<p>
お名前<br>
<input type="text" cols="30" name="name" value="<?php echo $_POST["name"] ?>"><br>
</p>

<p>
メールアドレス<br>
<input type="text" cols="30" name="email" value="<?php echo $_POST["email"] ?>"><br>
</p>

<p>
コメント<br>
<textarea name="comment" cols="50" rows="10"><?php echo $_POST["comment"] ?></textarea><br>
</p>

<input type="submit" name="post_flg" value="送信する"><br>
</form>

<?php
// メール送信後の表示
} else {
?>
<br><br><br><br>メールを送信しました。<br>
<?php } ?>

</body>
</html>
――――――――――――――――――――――――――――――――――――

投稿日時 - 2013-03-30 16:43:22

QNo.8018984

すぐに回答ほしいです

質問者が選んだベストアンサー

エラーがでないのであれば、phpのコードに問題はないと思います。
サーバーのsendmailが許可されているかなどを調べてみてください。

ただ、サンプルのソースは、セキュリティ的に使用するべきではない見本ですね。。。

投稿日時 - 2013-03-31 23:19:29

お礼

>サンプルのソースは、セキュリティ的に使用するべきではない見本ですね。。。

確かに、シンプルゆえ、危なそうですね。
助言ありがとうございます。

投稿日時 - 2013-04-07 21:02:27

ANo.2

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

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

回答(2)

ANo.1

サーバ側の設定に問題がある可能性が考えられます。

phpのエラーログを確認し問題がないようであれば、
php.iniのmailに関する箇所の設定やSMTPサーバの設定、送信ポート(25)に問題がないかどうか等、
確認されるとヒントが得られるかも知れません。

投稿日時 - 2013-03-30 19:23:10

お礼

レンタルサーバを仕様しているので、
php.iniはいじれなかったと思います。
いろいろと調べたいと思います。

投稿日時 - 2013-04-07 21:03:24

あなたにオススメの質問