Javascript PHP电子邮件说它已发送,但当我打开收件箱时,没有任何消息

Javascript PHP电子邮件说它已发送,但当我打开收件箱时,没有任何消息,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在尝试用jquery、ajax和php创建一个联系我们表单。当我单击html jquery和ajax中的按钮时,我会向php发出请求,然后使用php mail()函数发送电子邮件。但是,当我单击“发送”时,它表示一切正常,并且ajax函数success函数运行,提醒用户消息已发送。现在,当我进入应该发送邮件的收件箱时,我没有收到任何电子邮件。我在Windows7上运行这个,ecowebhost <script src="https://maxcdn.bootstrapcdn.c

我正在尝试用jquery、ajax和php创建一个联系我们表单。当我单击html jquery和ajax中的按钮时,我会向php发出请求,然后使用php mail()函数发送电子邮件。但是,当我单击“发送”时,它表示一切正常,并且ajax函数success函数运行,提醒用户消息已发送。现在,当我进入应该发送邮件的收件箱时,我没有收到任何电子邮件。我在Windows7上运行这个,ecowebhost

    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src = "js/callmail.js"></script>

</head>

<body ng-app = "">

            <div class = "container">

    <form name = "contact">

        <label for = "subject" class = "control-label">Subject:</label>
        <input name = "subject" id = "subject" ng-model = "subject" required/>
        <span class = "warning" ng-show="contact.subject.$touched && contact.subject.$invalid">You Must Enter a subject!</span>
        <span class = "success" ng-show="contact.subject.$touched && contact.subject.$valid">Valid!</span>

        <br/>

        <label for = "body" class = "control-label">Body:</label>
        <input name = "body" id = "body" ng-model = "body" required/>
        <span class = "warning" ng-show="contact.body.$touched && contact.body.$invalid">Your email must have a body!</span>
        <span class = "success" ng-show="contact.body.$touched && contact.body.$valid">Valid!</span>

        <br/>

        <label for = "signature" class = "control-label">Return Email:</label>
        <input name = "signature" id = "signature" ng-model = "signature" type = "email" required/>
        <span class = "warning" ng-show="contact.signature.$touched && contact.signature.$invalid">You must enter a valid return email!</span>
        <span class = "success" ng-show="contact.signature.$touched && contact.signature.$valid">Valid!</span>

        <br/>

        <button ng-disabled = "contact.$invalid" id = "sendmail" type = "submit" class = "btn btn-success">Submit</button>

    </form>
这是html表单

    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src = "js/callmail.js"></script>

</head>

<body ng-app = "">

            <div class = "container">

    <form name = "contact">

        <label for = "subject" class = "control-label">Subject:</label>
        <input name = "subject" id = "subject" ng-model = "subject" required/>
        <span class = "warning" ng-show="contact.subject.$touched && contact.subject.$invalid">You Must Enter a subject!</span>
        <span class = "success" ng-show="contact.subject.$touched && contact.subject.$valid">Valid!</span>

        <br/>

        <label for = "body" class = "control-label">Body:</label>
        <input name = "body" id = "body" ng-model = "body" required/>
        <span class = "warning" ng-show="contact.body.$touched && contact.body.$invalid">Your email must have a body!</span>
        <span class = "success" ng-show="contact.body.$touched && contact.body.$valid">Valid!</span>

        <br/>

        <label for = "signature" class = "control-label">Return Email:</label>
        <input name = "signature" id = "signature" ng-model = "signature" type = "email" required/>
        <span class = "warning" ng-show="contact.signature.$touched && contact.signature.$invalid">You must enter a valid return email!</span>
        <span class = "success" ng-show="contact.signature.$touched && contact.signature.$valid">Valid!</span>

        <br/>

        <button ng-disabled = "contact.$invalid" id = "sendmail" type = "submit" class = "btn btn-success">Submit</button>

    </form>

    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src = "js/callmail.js"></script>

</head>

<body ng-app = "">

            <div class = "container">

    <form name = "contact">

        <label for = "subject" class = "control-label">Subject:</label>
        <input name = "subject" id = "subject" ng-model = "subject" required/>
        <span class = "warning" ng-show="contact.subject.$touched && contact.subject.$invalid">You Must Enter a subject!</span>
        <span class = "success" ng-show="contact.subject.$touched && contact.subject.$valid">Valid!</span>

        <br/>

        <label for = "body" class = "control-label">Body:</label>
        <input name = "body" id = "body" ng-model = "body" required/>
        <span class = "warning" ng-show="contact.body.$touched && contact.body.$invalid">Your email must have a body!</span>
        <span class = "success" ng-show="contact.body.$touched && contact.body.$valid">Valid!</span>

        <br/>

        <label for = "signature" class = "control-label">Return Email:</label>
        <input name = "signature" id = "signature" ng-model = "signature" type = "email" required/>
        <span class = "warning" ng-show="contact.signature.$touched && contact.signature.$invalid">You must enter a valid return email!</span>
        <span class = "success" ng-show="contact.signature.$touched && contact.signature.$valid">Valid!</span>

        <br/>

        <button ng-disabled = "contact.$invalid" id = "sendmail" type = "submit" class = "btn btn-success">Submit</button>

    </form>
下面是php代码:

    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src = "js/callmail.js"></script>

</head>

<body ng-app = "">

            <div class = "container">

    <form name = "contact">

        <label for = "subject" class = "control-label">Subject:</label>
        <input name = "subject" id = "subject" ng-model = "subject" required/>
        <span class = "warning" ng-show="contact.subject.$touched && contact.subject.$invalid">You Must Enter a subject!</span>
        <span class = "success" ng-show="contact.subject.$touched && contact.subject.$valid">Valid!</span>

        <br/>

        <label for = "body" class = "control-label">Body:</label>
        <input name = "body" id = "body" ng-model = "body" required/>
        <span class = "warning" ng-show="contact.body.$touched && contact.body.$invalid">Your email must have a body!</span>
        <span class = "success" ng-show="contact.body.$touched && contact.body.$valid">Valid!</span>

        <br/>

        <label for = "signature" class = "control-label">Return Email:</label>
        <input name = "signature" id = "signature" ng-model = "signature" type = "email" required/>
        <span class = "warning" ng-show="contact.signature.$touched && contact.signature.$invalid">You must enter a valid return email!</span>
        <span class = "success" ng-show="contact.signature.$touched && contact.signature.$valid">Valid!</span>

        <br/>

        <button ng-disabled = "contact.$invalid" id = "sendmail" type = "submit" class = "btn btn-success">Submit</button>

    </form>
<?php   
    if ($_POST["submit"]) { 


        $subject = $_POST["subject"];
        $message = $_POST["body"];
        $headers = "Reply to: " . $_POST["signature"];

        mail("tyler.psu.grim@gmail.com", $subject, $message, $headers); 

    }

?>

这两种语言都非常陌生,所以我完全不知道从这里可以走到哪里

    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src = "js/callmail.js"></script>

</head>

<body ng-app = "">

            <div class = "container">

    <form name = "contact">

        <label for = "subject" class = "control-label">Subject:</label>
        <input name = "subject" id = "subject" ng-model = "subject" required/>
        <span class = "warning" ng-show="contact.subject.$touched && contact.subject.$invalid">You Must Enter a subject!</span>
        <span class = "success" ng-show="contact.subject.$touched && contact.subject.$valid">Valid!</span>

        <br/>

        <label for = "body" class = "control-label">Body:</label>
        <input name = "body" id = "body" ng-model = "body" required/>
        <span class = "warning" ng-show="contact.body.$touched && contact.body.$invalid">Your email must have a body!</span>
        <span class = "success" ng-show="contact.body.$touched && contact.body.$valid">Valid!</span>

        <br/>

        <label for = "signature" class = "control-label">Return Email:</label>
        <input name = "signature" id = "signature" ng-model = "signature" type = "email" required/>
        <span class = "warning" ng-show="contact.signature.$touched && contact.signature.$invalid">You must enter a valid return email!</span>
        <span class = "success" ng-show="contact.signature.$touched && contact.signature.$valid">Valid!</span>

        <br/>

        <button ng-disabled = "contact.$invalid" id = "sendmail" type = "submit" class = "btn btn-success">Submit</button>

    </form>
$(function() {
$("#sendmail").click(function() {
    var to = "tyler.psu.grim@gmail.com";
    var subject = $("#signature").val() +": " + $("#subject").val(); //?? WHERE IS SUBJECT INPUT????
    var message = $("#body").val(); 
    var signature = $("#signature").val();

    var data = {

        to: to,
        subject: subject,
        message: message,
        signature: signature
    };

    $.ajax({

        type: "POST",
        url: "email.php",
        data: data,
        success: function(msg) {

            console.log(msg);

        }

    });

    console.log(data);
    return false;
});
});
/////

    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src = "js/callmail.js"></script>

</head>

<body ng-app = "">

            <div class = "container">

    <form name = "contact">

        <label for = "subject" class = "control-label">Subject:</label>
        <input name = "subject" id = "subject" ng-model = "subject" required/>
        <span class = "warning" ng-show="contact.subject.$touched && contact.subject.$invalid">You Must Enter a subject!</span>
        <span class = "success" ng-show="contact.subject.$touched && contact.subject.$valid">Valid!</span>

        <br/>

        <label for = "body" class = "control-label">Body:</label>
        <input name = "body" id = "body" ng-model = "body" required/>
        <span class = "warning" ng-show="contact.body.$touched && contact.body.$invalid">Your email must have a body!</span>
        <span class = "success" ng-show="contact.body.$touched && contact.body.$valid">Valid!</span>

        <br/>

        <label for = "signature" class = "control-label">Return Email:</label>
        <input name = "signature" id = "signature" ng-model = "signature" type = "email" required/>
        <span class = "warning" ng-show="contact.signature.$touched && contact.signature.$invalid">You must enter a valid return email!</span>
        <span class = "success" ng-show="contact.signature.$touched && contact.signature.$valid">Valid!</span>

        <br/>

        <button ng-disabled = "contact.$invalid" id = "sendmail" type = "submit" class = "btn btn-success">Submit</button>

    </form>
您可能还需要检查垃圾邮件文件夹。 您是从本地主机还是自己的网站发送?
某些Web服务器软件(如xampp)不允许/执行?默认情况下,此邮件函数。

PHP是否真的在做任何事情?我看不到
submit
POST变量,因此
如果($\u POST[“submit”])
总是错误的。该按钮是否不作为submit POST变量?它可能可以,但由于您使用Ajax发布,因此您需要手工处理
数据,并且不包括它。您没有验证
mail()
成功或使用条件响应回复ajax。此外,似乎也没有来自
,这是任何电子邮件的一项要求。如果您使用key
message
发布一个值,并在PHP中将其称为
body
。说真的,你需要对你的代码更加小心,并且真正地去理解这里发生了什么。当我这样做的时候,没有回声?(什么也没发生)我在自己的网站EcoWebHost上运行它,你不会在页面上看到回音。这是一个AJAX调用,因此您可以将其视为对请求的响应。请尝试在浏览器的Web控制台中查看响应。
contentType
没有意义查看我的编辑,我添加了一个返回值false,以便在点击提交后不会重新加载页面。
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src = "js/callmail.js"></script>

</head>

<body ng-app = "">

            <div class = "container">

    <form name = "contact">

        <label for = "subject" class = "control-label">Subject:</label>
        <input name = "subject" id = "subject" ng-model = "subject" required/>
        <span class = "warning" ng-show="contact.subject.$touched && contact.subject.$invalid">You Must Enter a subject!</span>
        <span class = "success" ng-show="contact.subject.$touched && contact.subject.$valid">Valid!</span>

        <br/>

        <label for = "body" class = "control-label">Body:</label>
        <input name = "body" id = "body" ng-model = "body" required/>
        <span class = "warning" ng-show="contact.body.$touched && contact.body.$invalid">Your email must have a body!</span>
        <span class = "success" ng-show="contact.body.$touched && contact.body.$valid">Valid!</span>

        <br/>

        <label for = "signature" class = "control-label">Return Email:</label>
        <input name = "signature" id = "signature" ng-model = "signature" type = "email" required/>
        <span class = "warning" ng-show="contact.signature.$touched && contact.signature.$invalid">You must enter a valid return email!</span>
        <span class = "success" ng-show="contact.signature.$touched && contact.signature.$valid">Valid!</span>

        <br/>

        <button ng-disabled = "contact.$invalid" id = "sendmail" type = "submit" class = "btn btn-success">Submit</button>

    </form>