Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Ajax表单发送成功,但没有电子邮件_Jquery_Ajax_Forms - Fatal编程技术网

Jquery 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

我有一个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(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
事件。