为什么我的AJAX表单不发送电子邮件?
问题描述:
我正在使用AJAX的PHP邮件表单,它不发送任何邮件。我在这里错过了什么?为什么我的AJAX表单不发送电子邮件?
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 = '[email protected]';
$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.';
}
?>
答
在PHP您的电子邮件设置?首先检查一下,否则在这里我看不到任何问题。你应该从这个if/else块获得某种输出。
我首先回顾一下PHP错误日志,看看你的mail()fn是否工作。这可能是原因。
+0
这是消息错误。如果消息少于30则显示错误! – HollerTrain 2009-10-27 13:26:12
什么得到回应? – Greg 2009-10-27 12:23:35
消息得到回应。 – HollerTrain 2009-10-27 12:34:18