Javascript 使用AJAX的PHP mail()

Javascript 使用AJAX的PHP mail(),javascript,php,ajax,email,Javascript,Php,Ajax,Email,我在使用mail()时遇到问题。更准确地说,当AJAX代码打开时,会发送电子邮件,但没有消息(通常会有主题等) 但是,当我删除AJAX代码时,电子邮件发送时不会出现任何问题。 我对AJAX了解不多,我复制了js代码 除此之外,有人能解释为什么js结尾有“return false”吗 HTML mail.php <?php if($_POST){ $to = "contact@mail.com"; $from = $_POST['email']; $name = $_POST['name']

我在使用mail()时遇到问题。更准确地说,当AJAX代码打开时,会发送电子邮件,但没有消息(通常会有主题等)

但是,当我删除AJAX代码时,电子邮件发送时不会出现任何问题。 我对AJAX了解不多,我复制了js代码

除此之外,有人能解释为什么js结尾有“return false”吗

HTML

mail.php

<?php
if($_POST){
$to = "contact@mail.com";
$from = $_POST['email'];
$name = $_POST['name'];
$msg = $_POST['msg_text'];

$subject = "Message from" . $from;
$subject = '=?UTF-8?B?'.base64_encode($subject).'?=';

$headers = "Reply-to: contact@mail.com <contact@mail.com>\r\n";
$headers .= "From: contact@mail.com <contact@mail.com>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n";

$message = $name . " " ."wrote:" . "\n\n" . $msg;

mail($to,$subject,$message,$headers);
}
?>

根据您的问题-

**1.**我在使用mail()时遇到问题。更准确地说,当AJAX代码打开时,会发送电子邮件,但没有消息(通常会有主题等)

mail.php
中,使用
$\u POST['message']
而不是
$\u POST['msg\u text']

$to = "contact@mail.com";
$from = $_POST['email'];
$name = $_POST['name'];
$msg = $_POST['message'];
2.当我删除AJAX代码时,电子邮件发送没有问题。我对AJAX了解不多,我复制了js代码

,删除AJAX代码后,电子邮件将正常工作,因为您在标记中使用了action=“mail.php”,并且input type=“submit”,所以它直接提交表单和由mail.php执行的操作。 因此,您应该从表单标记中删除操作,并使其成为
input type=“button”
,而不是
input type=“submit”



我认为
Ajax
不会影响Php的
mail()
。首先,
msg\u text
应该是
message
。您应该使用错误报告,您将得到未定义的索引通知。您的第二个
$subject=
覆盖了第一个作业,您的意思可能是
$subject.=
返回false
,因为您不希望表单实际提交;AJAX已经做到了这一点。我想您也可以使用
preventdefault
<?php
if($_POST){
$to = "contact@mail.com";
$from = $_POST['email'];
$name = $_POST['name'];
$msg = $_POST['msg_text'];

$subject = "Message from" . $from;
$subject = '=?UTF-8?B?'.base64_encode($subject).'?=';

$headers = "Reply-to: contact@mail.com <contact@mail.com>\r\n";
$headers .= "From: contact@mail.com <contact@mail.com>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n";

$message = $name . " " ."wrote:" . "\n\n" . $msg;

mail($to,$subject,$message,$headers);
}
?>
var data = {
    name: $("#name").val(),
    email: $("#email").val(),
    message: $("#msg").val()
};
$to = "contact@mail.com";
$from = $_POST['email'];
$name = $_POST['name'];
$msg = $_POST['message'];
<form name="contactform" method="post" class="o4">
<input type="button" name="submit" value="Send" class="submit_contact">
    </td>