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

締切り済みの質問

PHPからのメールがうまく作動しない。。。

php初心者です。宜しくお願いします。
問い合わせフォームを作成したく、以下のHTMLとPHPファイルを作成しましたが、「mail.php」の時点で作動せず、メールもおくられません。色々調べて「.htaccess」での設定に関係あると書いていますが、よくわかりません・・・ずっとわからず悩んでます。教えていただけないでしょうか。宜しくお願い致します。
「mail.html」
<html>
<head>
<title>メール送信フォーム</title>
</head>
<h2>メール送信フォーム</h2>
<form method="POST"action="kakunin.php">
<table border="0">
<tr>
<td>お名前</td>
<td><input type="text" name="name" size="20"></td>
</tr>
<tr>
<td>メールアドレス</td>
<td><input type="text" name="from" size="20"></td>
</tr>
<tr>
<td>メールタイトル</td>
<td><input type="text" name="title" size="20"></td>
</tr>
<tr>
<td>メッセージ</td>
<td><textarea rows="5" name="naiyou" cols="40"></textarea></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="内容を確認"></td>
</tr>
</table>
</form>
</body>
</html>
「kakunin.php」
<html>
<head>
<title>メール送信フォーム</title>
</head>
<body>
<h2>メール送信内容確認画面</h2>
<?php

//フォームの値を取得します。

if ($_SERVER["REQUEST_METHOD"] == "POST") {
foreach($_POST as $k => $v){

//「magic_quotes_gpc=on」のときはエスケープ解除
if(get_magic_quotes_gpc()) {
$v = stripslashes($v);
}
$v = htmlspecialchars($v);
$$k = $v;
}
}
else {
exit();
}
//値をチェックします。
$ErrFlg = 0;
if($name == ""){
echo"<p>お名前を入力してください。";
$ErrFlg = 1;
}
if($from == ""){
echo"<p>メールアドレスを入力してください。";
$ErrFlg = 1;
}
if($title == ""){
echo"<p>メールタイトルを入力してください。";
$ErrFlg = 1;
}
if($naiyou == ""){
echo"<p>メッセージを入力してください。";
$ErrFlg = 1;
}
if($ErrFlg){
exit();
}
?>
<h2>内容を確認して送信ボタンをクリックしてください。</h2>
<form method="POST" action="mail.php">
<table border="0">
<tr>
<td width="100">お名前</td>
<td width="300"><?php echo $name?></td>
</tr>
<tr>
<td width="100">メールアドレス</td>
<td width="300"><?php echo $from?></td>
</tr>
<tr>
<td width="100">メールタイトル</td>
<td width="300"><?php echo $title?></td>
</tr>
<tr>
<td width="100">メッセージ</td>
<td width="300"><?php echo $naiyou?></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="送信"></td>
</tr>
</table>
<input type="hidden" name="name" value="<?php echo $name?>">
<input type="hidden" name="from" value="<?php echo $from?>">
<input type="hidden" name="title" value="<?php echo $title?>">
<input type="hidden" name="naiyou" value="<?php echo $naiyou?>">
</from>
</body>
</html>
「mail.php」

<HTML>
<HEAD>
<title>メール送信フォーム</title>
</HEAD>
<BODY>
<?php
//メール送信先を指定
$to == "web@beworks-web.com";

//フォームの値を取得
if($_SERVER["REQUEST_METHOD"] == "POST") {
foreach($_POST as $k => $v){

//「magic_quotes_gpc=on」のときはエスケープ解除
if(get_magic_quotes_gpc()){
$v = stripslashes($v);
}
$v = htmlspecialchars($v);
$sk = $v;
}
}
else {
exit();
}
//メール本文を組み立て
$naiyou = "お名前:$name\n
メールアドレス:$from\n
タイトル:$title\n
内容:$naiyou\n";

if($name != "" and $from != "" and $title != ""
and $naiyou != ""){
if(mb_send_mail($to,$title,$naiyou,"From:$from")) {
echo "メールを送信しました";
}
else {
echo "メール失敗です";
}
}
?>
</BODY>
</HTML>

投稿日時 - 2008-12-15 13:16:58

QNo.4557371

すぐに回答ほしいです

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

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

回答(1)

ANo.1

メール送信先を指定で$toとの比較になっちゃってますが、こちらはどうでしょう?

それと、いくつか確認します。
・php.iniの[mail function]項には正しいメール送信サーバの情報が記述されているでしょうか?
・「.htaccess」に関係があると言うのはどのエラー内容からでしょうか?
エラーメッセージも併記すると解決が早くなりますよ

投稿日時 - 2008-12-15 18:10:24

補足

返信ありがとうございます。
php.iniの[mail function]の設定ですが、以下のように設定してありますが、勉強不足であまりよくわかっていません。具体的に教えていただけるとありがたいです。

通常、Microsoft Office Outlook 2003 で送信サーバーはSMTP(587)ですが、下記smtp_port = も587に変更しないといけないのでしょうか。

現在、エラーはなにも表示されず、mail.phpまで普通に作動します。
メールだけが送られていない状態です。

ドメインごとにメールフォームを作り(送信先も別になる)設定したいのですが、.htaccessで設定できると聞きましたが、実際 .htaccessでどのように記述、設定するのかわかりません。
エラー表示もないので困っています。
具体的に教えていただけるとありがたいです。
どうぞ宜しくお願いします。


[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
;sendmail_from = me@example.com

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

投稿日時 - 2008-12-16 09:17:01

お礼

すみません!!
ご指摘いただいた
$to == "web@beworks-web.com";
の=がミス打ちでした。直したところ、うまく送信されました。
本当にありがとうございました!!
今後とも宜しくお願い致します。

投稿日時 - 2008-12-16 09:53:43

あなたにオススメの質問