PHP邮件脚本无法正常工作

时间:2013-09-06 14:18:24

标签: php javascript html email

好吧,所以我对PHP很新,所以我想我会问你们我做错了什么。我目前正在开发一个网站,您可以通过此电子邮件表单联系该公司。

但是,由于某种原因,电子邮件将不会发送。我已经尝试了多封电子邮件(并且使用了一些代码),但它无法正常工作。

这是mail.php脚本:

    <?php
if ($_POST) {
    $name  = $_POST['name'];
    $email = $_POST['email'];
    $text  = $_POST['text'];

    //send email   
    mail("myemail@gmail.com", "email enquiry", $text, "From:" . $email);
}

?>

以下是我的script.js中表单的摘录:

    //Contact Form Code:
        $(function (e) {
            $(".form-button").click(function (e) {
                var $error = 0;
                var name = $("#form-name").val();
                var email = $("#form-email").val();
                var text = $("#form-msg").val();
                var security = $("#form-security").val();


                if(name == "" || email=="" || text=="" ){
                    $('#details-error-wrap').fadeIn(1000);
                    $error = 1;

                }else{
                    $('#details-error-wrap').fadeOut(1000);
                }

                if(security != 8 ){
                    $('#security-error-wrap').fadeIn(1000);
                    $error = 1;

                }else{
                    $('#security-error-wrap').fadeOut(1000);
                }

                if( /(.+)@(.+){2,}\.(.+){2,}/.test(email) ){

                } else {
                  $('#details-error-wrap').fadeIn(1000);
                  $error = 1;
                }



                var dataString = 'name=' + name + '&email=' + email +   '&text=' + text;

                if($error == 0){
                    $.ajax({
                        type: "POST",
                        url: "mail.php",
                        data: dataString,
                        success: function () {
                            $('#details-error-wrap').fadeOut(1000);
                            $('#security-error-wrap').fadeOut(1000);
                            $('#form-sent').fadeIn(1000);
                        }
                    });
                    return false;
                }

                e.preventDefault();
            });
        });


});

最后,这是HTML:

        <div class="seven columns">

        <div id="form-sent" class="hide">   
            <div class="alert-box success">Message sent: Thankyou for your enquiry</div>
        </div>
        <form id="contact-form">
            <label>Name *</label>     
            <input id="form-name" type="text"/>
            <label>Email *</label>
            <input id="form-email"  type="text" />
            <label>Message *</label>
            <textarea id="form-msg"></textarea>
            <div id="details-error-wrap"  class="hide"> 
            <div class="alert-box alert error-box">Error: Please ensure all fields are filled in correctly</div>
            </div>
            <label>Security Question *</label>
            <input id="form-security" type="text" placeholder="7 + 1 = ?" />
            <div id="security-error-wrap"  class="hide">    
                <div class="alert-box alert error-box">Error: Security question is incorrect</div>
            </div>  
            <input type="submit" value="Submit" class="form-button right" />

        </form>

    </div>
</div>

我发布了所有三个相关的东西。本网站的部分内容来自我正在使用的模板,因此如果您认为问题出在另一个文件中,请告诉我。

在此先感谢,我希望有人能够帮助我:)。

1 个答案:

答案 0 :(得分:0)

首先,它可能会在您的垃圾邮件文件夹中结束。

您是否使用个人电子邮件地址发送电子邮件?比如me@gmail.com?

如果是这样,那显然不会起作用,您需要设置 SMTP ,以便电子邮件通过防火墙并实际进入收件箱。

可能希望更好地格式化脚本,同时使用IF语句查看电子邮件是否实际由PHP发送:

 $to = 'myemail@gmail.com'; //Change this to the email you're using
 $subject = 'Website Contact Form';
 $headers = "From: " . "Me!! <myemail@gmail.com>" . "\r\n"; //This too
 $content  = "Hey!";

 if (mail($to, $subject, $content, $headers)) {
  echo "Success! Email was sent - Yay!";
 } else {
  echo "Error sending Email! booo!";
 }