0

基本的に、次のコードは、Webサイトのユーザーが入力すると、私の電子メールアドレスに電子メールを送信する照会フォームです。しかし、何かが機能していません...

これがphpです:

<?php
$field_name = $_POST['efName'];
$field_email = $_POST['efEmail'];
$field_phone = $_POST['efPhone'];
$field_date = $_POST['efTravelDate'];
$field_duration = $_POST['efLengthOfStay'];
$field_otherInfo = $_POST['efOtherInfo'];

$mail_to = 'James_Burnside94@hotmail.com';
$subject = 'Enquiry Applicant-'.$field_name;

$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Phone: '.$field_phone."\n";
$body_message .= 'Date: '.$field_date."\n";
$body_message .= 'Duration: '.$field_duration."\n";
$body_message .= 'otherInfo: '.$field_otherInfo."\n";

$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";

$mail_status = mail($mail_to, $subject, $body_message, $headers);

if ($mail_status) { ?>
    <script language="javascript" type="text/javascript">
        alert('Enquiry Sent.');
        window.location = 'index.html';
    </script>
<?php
}
else { ?>
    <script language="javascript" type="text/javascript">
        alert('Enquiry form failed to send. \n Please try again, or send an email             to enquiry@cannes-rental-apartment.com');
        window.location = 'index.html';
    </script>
<?php
}
?>

これがHtml本体です:

<body>


<fieldset style="display:block; width:500px;">
    <form action="enquiry.php" method="post">
    <table> 
                <tr> <td> <span class="enquiryFormHeader"> Enquiry Form     </span> <p>         </p></td> </tr>
            <tr> <td> Name: </td> <td> <input type="text" name="efName"     id="efName"> </td> </tr>
            <tr> <td> Email: </td> <td> <input type="text" name="efEmail"     id="efEmail"> </td> </tr>
            <tr> <td> Phone or Moblie: </td> <td> <input type="text"     name="efPhone" id="efPhone"> </td> </tr>
            <tr> <td> Intended travel date: </td> <td> <input type="text"     name="efTravelDate" id="efTravelDate"> </td> </tr>
            <tr> <td> Intended length of stay: </td> <td> <input type="text"     name="efLengthOfStay" id="efLengthOfStay"> </td> </tr>
            <tr> <td valign="top"> Any other information:  </td> <td> <textarea     name="efOtherInfo" id="efOtherInfo"> </textarea> <p> </p> </td> </tr>
            <tr> <td><input type="submit" value="Send Form"     class="submitButton"> </td> </tr>
    </table>

    </form>
    </fieldset>


</body>

$ mail_status = mail($ mail_to、'subject'、'body_message'、'headers');を実行した場合

基本的なメールを完璧に送信します。

すべての場合に、InquirySentアラートが表示されます。

なぜそれが機能しないのか誰もが知っていますか?

4

2 に答える 2

1

を実行し、var_dump(get_defined_vars());それらが設定されていることを確認します。また、PHPまたはApacheユーザー/var/mail/userがどこにuserいるかを確認し、OSレベルでスローされるエラーを確認します。

于 2012-08-25T23:30:20.507 に答える
0

1-正確には、何が得られますか? 空のメールまたはまったくメールがない?

2- user1593858 が言ったように、$_POST をデバッグしてみてください。php 開始タグの直後にこれを追加します。

echo "<pre>";
print_r($_POST);
echo "</pre>";

フィールドが正しいかどうかを確認します。

3-あなたがそうするなら、あなたはそれを言います:

$mail_status = mail($mail_to, 'subject', 'body_message', 'headers');

できます; $subject問題が切り分けられるまで、'subject' を 'body_message'に置き換えてみてください$body_message

于 2012-08-25T21:09:25.957 に答える