Jquery Ajax表单发送成功,但没有电子邮件
我有一个AJAX表单,它说它成功了,但是仍然没有收到来自这个网站的任何电子邮件,非常烦人Jquery Ajax表单发送成功,但没有电子邮件,jquery,ajax,forms,Jquery,Ajax,Forms,我有一个AJAX表单,它说它成功了,但是仍然没有收到来自这个网站的任何电子邮件,非常烦人 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script type="text/javascript"> /* Code by David McKeown www.craftedbydavid.com */ jQuery(doc
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
/*
Code by David McKeown
www.craftedbydavid.com
*/
jQuery(document).ready(function () { // wait until the document is ready
jQuery('#send').click(function(){ // when the button is clicked the code executes
jQuery('.error').fadeOut('slow'); // reset the error messages (hides them)
var error = false; // we will set this true if the form isn't valid
var name = jQuery('input#name').val(); // get the value of the input field
if(name == "" || name == " ") {
jQuery('#err-name').fadeIn('slow'); // show the error message
error = true; // change the error state to true
}
var phone = jQuery('input#phone').val(); // get the value of the input field
if(phone == "" || phone == " ") {
jQuery('#err-phone').fadeIn('slow'); // show the error message
error = true; // change the error state to true
}
var email_compare = /^([a-z0-9_.-]+)@([da-z.-]+).([a-z.]{2,6})$/; // Syntax to compare against input
var email = jQuery('input#email').val(); // get the value of the input field
if (email == "" || email == " ") { // check if the field is empty
jQuery('#err-email').fadeIn('slow'); // error - empty
error = true;
}else if (!email_compare.test(email)) { // if it's not empty check the format against our email_compare variable
jQuery('#err-emailvld').fadeIn('slow'); // error - not right format
error = true;
}
if(error == true) {
jQuery('#err-form').slideDown('slow');
return false;
}
var data_string = jQuery('#ajax-form').serialize(); // Collect data from form
//alert(data_string);
jQuery.ajax({
type: "POST",
url: jQuery('#ajax-form').attr('action'),
data: data_string,
timeout: 6000,
error: function(request,error) {
if (error == "timeout") {
jQuery('#err-timedout').slideDown('slow');
}
else {
jQuery('#err-state').slideDown('slow');
jQuery("#err-state").html('An error occurred: ' + error + '');
}
},
success: function() {
jQuery('#ajax-form').slideUp('slow');
jQuery('#ajaxsuccess').slideDown('slow');
}
});
return false; // stops user browser being directed to the php file
}); // end click function
});
</script>
/*
David McKeown编写的代码
www.craftedbydavid.com
*/
jQuery(document).ready(函数(){//等待文档准备就绪
jQuery('#send')。单击(function(){//当单击按钮时,代码将执行
jQuery('.error').fadeOut('slow');//重置错误消息(隐藏它们)
var error=false;//如果表单无效,我们将设置为true
var name=jQuery('input#name').val();//获取输入字段的值
如果(名称=“”| |名称=“”){
jQuery('#err name').fadeIn('slow');//显示错误消息
error=true;//将错误状态更改为true
}
var phone=jQuery('input#phone').val();//获取输入字段的值
如果(电话=“”| |电话=“”){
jQuery('err phone').fadeIn('slow');//显示错误消息
error=true;//将错误状态更改为true
}
var email_compare=//^([a-z0-9_。-]+)@([da-z.-]+)([a-z.]{2,6})$//;//与输入进行比较的语法
var email=jQuery('input#email').val();//获取输入字段的值
如果(email==“”| | email==“”){//检查字段是否为空
jQuery('err email').fadeIn('slow');//错误-空
错误=真;
}否则,如果(!email\u compare.test(email)){//如果它不是空的,请根据我们的email\u compare变量检查格式
jQuery('err emailvld').fadeIn('slow');//错误-格式不正确
错误=真;
}
如果(错误==true){
jQuery(“#err form”).slideDown('slow');
返回false;
}
var data_string=jQuery('#ajax form')。serialize();//从表单收集数据
//警报(数据字符串);
jQuery.ajax({
类型:“POST”,
url:jQuery('#ajax form').attr('action'),
数据:数据字符串,
超时:6000,
错误:函数(请求、错误){
如果(错误==“超时”){
jQuery('err timedout')。slideDown('slow');
}
否则{
jQuery('err state')。slideDown('slow');
jQuery(“#err state”).html('发生错误:'+error+'');
}
},
成功:函数(){
jQuery(“#ajax表单”).slideUp('slow');
jQuery(“#ajaxsuccess”).slideDown('slow');
}
});
return false;//停止将用户浏览器定向到php文件
});//结束单击函数
});
HTML表单>>>>>>>>>>>>>>>
<!-- language: lang-html -->
<form name="ajax-form" id="ajax-form" action="mail-it.php" method="post">
<p>
<label for="name">Name: *
<span class="error" id="err-name">please enter name</span>
<br />
</label>
<input name="name" id="name" type="text" /><br /><br />
<label for="phone">Contact Number: *
<span class="error" id="err-phone">please enter phone number</span>
<br />
</label>
<input name="phone" id="phone" type="text" />
<label for="email">
<br />
E-Mail: *
<span class="error" id="err-email">please enter e-mail</span>
<span class="error" id="err-emailvld">e-mail is not a valid format</span><br />
</label>
<input name="email" id="email" type="text" />
</p>
<p>
<label for="message">Message:</label>
<textarea name="message" id="message"></textarea>
<div class="myButton"><INPUT type="submit" name="" value="" id="send"></div>
<div class="mainerror">
<div class="error" id="err-form">There was a problem validating the form please check!</div>
<div class="error" id="err-timedout">The connection to the server timed out!</div>
<div class="error" id="err-state"></div></div>
</form>
<div id="ajaxsuccess"><h2>Successfully sent!!</h2></div>
姓名:*
请输入您的姓名
联系电话:*
请输入电话号码
电子邮件:*
请输入电子邮件
电子邮件格式无效
信息:
验证表单时出现问题,请检查!
与服务器的连接超时!
成功发送!!
MAIL-PHP发送MAIL-IT.PHP
<!-- language: lang-php -->
<?php
/* Code by David McKeown - craftedbydavid.com */
/* Editable entries are bellow */
$send_to = "MYEMAIL@MYDOMAIN.co.uk";
$send_subject = "Website Enquiry ";
/*Be careful when editing below this line */
$f_name = cleanupentries($_POST["name"]);
$f_phone = cleanupentries($_POST["phone"]);
$f_email = cleanupentries($_POST["email"]);
$f_message = cleanupentries($_POST["message"]);
$from_ip = $_SERVER['REMOTE_ADDR'];
$from_browser = $_SERVER['HTTP_USER_AGENT'];
function cleanupentries($entry) {
$entry = trim($entry);
$entry = stripslashes($entry);
$entry = htmlspecialchars($entry);
return $entry;
}
$message = "This email was submitted on " . date('m-d-Y') .
"\n\nName: " . $f_name .
"\n\nPhone: " . $f_phone .
"\n\nE-Mail: " . $f_email .
"\n\nMessage: \n" . $f_message .
"\n\n\nTechnical Details:\n" . $from_ip . "\n" . $from_browser;
$send_subject .= " - {$f_name}";
$headers = "From: " . $f_email . "\r\n" .
"Reply-To: " . $f_email . "\r\n" .
"X-Mailer: PHP/" . phpversion();
if (!$f_email) {
echo "no email";
exit;
}else if (!$f_name){
echo "no name";
exit;
}else if (!$f_phone){
echo "no phone";
exit;
}else{
if (filter_var($f_email, FILTER_VALIDATE_EMAIL)) {
mail($send_to, $send_subject, $message, $headers);
echo "true";
}else{
echo "invalid email";
exit;
}
}
?>
表单上确实写着成功,但仍然没有收到电子邮件!有什么想法吗?由于您将按钮类型保留为“提交”,因此它将以默认方式执行 因此,在提交事件中,只需取消表单提交并运行AJAX代码
$('#ajax-form').bind('submit',function(e) {
e.preventDefault(); //Will prevent the submit...
//Add your code here
});
检查您的错误日志,这将为您提供有关实际情况的更多信息。测试您的
mail it.php
standalone。注释掉jQuery('#send')。单击(function(){…}
part。然后在mail it.php
的末尾添加以下行以打印最后一个错误
print_r(error_get_last()); // php >= 5.2.0
现在尝试提交表单。提交并打印错误数组(如果有)时,这应该重定向到
mail it.php
脚本。如果它抛出一些信息,请尝试更正。检查您的SMTP设置。如果AJAX成功,那么您的问题纯粹与php有关。最好实际查看服务器的响应,而不是仅仅依靠它返回一些东西的事实。Arvind Bhardwaj-谢谢-正确,我刚刚发现我们的一名员工今天早上已经超过了群发邮件的门槛,因此特定的域无法接收电子邮件,测试到另一个域电子邮件,并且工作正常。Arvind Bhardwaj-谢谢-正确,我刚刚收到了figu我们的一名工作人员今天早上已经超过了群发邮件的门槛,因此特定的域无法接收电子邮件,测试了另一个域的电子邮件,并且工作正常。他们已经使用return false
阻止点击提交按钮,因此无论如何都不会触发submit
事件。