0

これらの投稿のいくつかがすでにアップされていることを知っており、それらを読みましたが、問題の解決策を見つけることができませんでした. PHP と HTML は問題ないように見えるので、送信されたコンタクト フォームからメールが届かない理由がよくわかりません。

PHPは次のとおりです。

<?php

$Fname = $_POST ['Fname'];
$Lname = $_POST ['Lname'];
$email = $_POST ['email'];
$message = $_POST ['message'];

$to = 'myName@mywebsite.com';
$subject = 'Contact From My Website';
$msg = " First Name: $Fname/n" .
"Last Name: $Lname/n" .
"Email: $email/n" .
"Message: $message";

mail ($to, $subject, $msg,"From: " . $Fname . $Lname);

$confirm = "Thank you for contacting us! Please allow 48 hours for a representative to respond. Click <a href='contact.php'>here</a> to return to the previous page.";

?>

HTML フォーム コードは次のとおりです。

<form id="form1" name="form1" method="post" action="send.php">
                <tr>
                    <label><td width="160px" class="labels">First Name:&nbsp;&nbsp;</td>
                        <td class="input"><input type="text" name="Fname" id="Fname"/></td>
                    </label>
                </tr>
                <tr>
                    <label><td class="labels">Last Name:&nbsp;&nbsp;</td>
                        <td class="input"><input type="text" name="Lname" id="Lname"/></td>
                    </label>
                </tr>
                <tr>    
                    <label><td class="labels">Email:&nbsp;&nbsp;</td>
                        <td class="input"><input type="email" name="email" id="email"/></td>
                    </label>
                </tr>
                <tr>    
                    <label><td class="labels">Message:&nbsp;&nbsp;</td>
                        <td class="input"><textarea name="message" id="message" cols="30" rows="5"></textarea></td>
                    </label>                                    
                </tr>
                <tr>                        
                    <td class="labels"><input type="submit" name="submit" id="submit" value="Submit"/></td>
                </tr>
            </form> 

どんな助けでも大歓迎です

4

3 に答える 3

1

編集:

エラーが多かった。

\nmail()ヘッダーの不適切な使用とecho、最後に成功メッセージを表示しようとしています。

以下は、テスト済みで機能するメール ハンドラー スクリプトです。

:条件を追加しましたif{isset

email@example.com自分のメールアドレスに変更。

<?php

if(isset($_POST['submit']))

$Fname = $_POST['Fname'];
$Lname = $_POST['Lname'];
$email = $_POST['email'];
$message = $_POST['message'];

$to = "email@example.com"; // <<< change this to your own E-mail address
$subject = "Contact From My Website";
$msg = "First Name: $Fname\n" . "Last Name: $Lname\n" . "Email: $email\n" . "Message: $message";

$headers = "From: $email" . "\r\n" .
"Reply-To: $email" . "\r\n" .
"X-Mailer: PHP/" . phpversion();

mail($to, $subject, $msg, $headers);

echo "Thank you for contacting us! Please allow 48 hours for a representative to respond. Click <a href='contact.php'>here</a> to return to the previous page.";

?>


補足

mail( )以下にアクセスして、関数とヘッダーの適切な使用について読んでください。

そのページにはたくさんの例があります。

1 つの大きなエラーは の使用で/nあり、何かあればすべてを変更する必要があります\n

それだけで、最終的にハンドラーは失敗します。

于 2013-08-12T23:24:38.460 に答える
0

「差出人」には名前を含めないでください。代わりに差出人の電子メール アドレスを含める必要があります。

だから、代わりに

"From: " . $Fname . $Lname

あなたがしているはずです

"From: ". $myEmail

PHPマニュアルの有効なヘッダーは次のとおりです。

$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

Puggan と Fred はこの回答の功績も認めていると思います。

また、メッセージ ラベルの ID が $_POST['msg'] と一致していることを確認する必要があります。そのため、'msg' と 'message' を別の場所で使用しないでください。

参考までに、関数名とパラメーター引数の間のスペース ' ' をスキップしてください。すなわち

$_POST ['stuff'];
于 2013-08-12T23:23:50.337 に答える
-1

追加

$headers = "From:" . $Fname . $Lname;

これを使用します:

mail ($to, $subject, $msg, $headers);
于 2013-08-12T23:23:28.410 に答える