我试图使用 jQuery AJAX 和 PHP 制作一个联系表单。我的HTML如下
<form action="#" id="contactForm" method="post" name="contactForm">
<fieldset>
<div class="col-sm-12">
<input id="contactName" name="contactName" placeholder="Your Name*" type="text" value="" required>
</div>
<!-- Name Field [ END ] -->
<div class="col-sm-12">
<input id="contactEmail" name="contactEmail" placeholder="Your Email*" type="email" value="" required>
</div>
<!-- Email Field [ END ] -->
<div class="col-xs-12">
<textarea cols="5" id="contactMessage" name="contactMessage" placeholder="Your Message....*" required></textarea>
</div>
<!-- Message Field [ END ] -->
<div class="col-xs-12">
<button class="submit">SEND</button>
</div>
<!-- Submit Button [ END ] -->
<div class="error col-xs-12">
<h3>Sorry! Your message was not sent.</h3>
</div>
<!-- Error Message [ END ] -->
<div class="success col-xs-12">
<h3>Success! Your message was sent.</h3>
</div>
<!-- Seccess Message [ END ] -->
</fieldset>
而jQuery代码如下
$('form#contactForm').submit(function () {
var url = $('#contactForm').attr('action'),
type = $('#contactForm').attr('method'),
contactName = $('#contactForm #name').val(),
contactEmail = $('#contactForm #email').val(),
contactMessage = $('#contactForm #message').val(),
data = {
name: contactName,
email: contactEmail,
message: contactMessage
};
$.ajax({
type: type,
url: url,
data: data,
success: function () {
$('.success').fadeIn();
$('.error').fadeOut();
},
error: function () {
$('.error').fadeIn();
$('.success').fadeOut();
}
});
return false;
});
什么可能的 PHP 代码可以使该表单正常工作。我正在使用以下代码
<?php
if ( isset( $_POST['name'], $_POST['email'], $_POST['message'] ) ) {
$to = 'mail@example.com'; //my email address here
$subject = 'Message From :' . $_POST['name'];
$message = $_POST['message'];
$headers = 'From :' . $_POST['email'].'\r\n';
mail($to,$subject,$message,$headers);
}
?>
但它不起作用。显示成功消息但未收到邮件。 我对 PHP 不太熟悉。
请帮忙......
最佳答案
您的成功消息显示是因为php页面调用成功,这并不表明邮件发送成功。您应该通过返回邮件功能响应来检查这一点:
$response = mail($to,$subject,$message,$headers);
echo $response;
这将返回 true 或 false。此外,您还必须检查邮件是否被正确接收,它可能最终成为垃圾邮件,或者由于各种原因被您的邮件服务器拒绝。如果是这种情况,您可以对邮件 header 进行一些添加。 Here are some pointers关于如何获取邮件
关于javascript - AJAX 联系表单的 PHP 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32135944/