Javascript 使用AJAX的PHP mail()
我在使用mail()时遇到问题。更准确地说,当AJAX代码打开时,会发送电子邮件,但没有消息(通常会有主题等) 但是,当我删除AJAX代码时,电子邮件发送时不会出现任何问题。 我对AJAX了解不多,我复制了js代码 除此之外,有人能解释为什么js结尾有“return false”吗 HTML mail.phpJavascript 使用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']
<?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>