为什么我的AJAX表格不发送电子邮件?

时间:2009-10-27 12:22:34

标签: php ajax

我正在使用带有AJAX的PHP邮件表单,而且它没有发送任何邮件。我在这里缺少什么?

send.php

<?php
    error_reporting(E_NOTICE);

    function valid_email($str)
    {
        return ( ! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
    }

    if($_POST['first_name']!='' && $_POST['last_name']!='' && $_POST['e_mail']!='' && valid_email($_POST['e_mail'])==TRUE && strlen($_POST['message'])>30)
    {
        $to = 'zacharyrs@gmail.com';
        $headers =  'From: '.$_POST['e_mail'].''. "\r\n" .
                'Reply-To: '.$_POST['e_mail'].'' . "\r\n" .
                'X-Mailer: PHP/' . phpversion();
        $subject = "Hello! I'm testing my new ajax email that I got from roscripts.com";
        $message = htmlspecialchars($_POST['message']);

        if(mail($to, $subject, $message, $headers))
        {//we show the good guy only in one case and the bad one for the rest.
            echo 'Thank you '.$_POST['first_name'].'. Your message was sent';
        }
        else {
            echo "Message not sent. Please make sure you're not
                running this on localhost and also that you 
                are allowed to run mail() function from your webserver";
        }
    }
    else {
        echo 'Please make sure you filled all the required fields, 
        that you entered a valid email and also that your message 
        contains more then 30 characters.';
    }
?> 

1 个答案:

答案 0 :(得分:0)

您的电子邮件是否以PHP格式设置?首先检查一下,否则这里似乎没有任何问题我可以看到。你应该从这个if / else块获得某种输出。

我首先回顾一下PHP错误日志,看看你的mail()fn是否正常工作。这可能是原因。