PHP联系表单问题

时间:2011-09-23 21:00:35

标签: php jquery forms

http://www.raymondselda.com/php-contact-form-with-jquery-validation/

我正在尝试一些不同的联系表格,包括上面的表格。

我在此页面上运行:http://themeforward.com/demo2/features/contact-form/

问题是这个表单没有成功发送电子邮件到代码中的地址(完成的代码可以在这里找到:http://www.raymondselda.com/php-contact-form-with-jquery-validation/

有人知道问题是什么吗?

//If there is no error, send the email
    if(!isset($hasError)) {
        $emailTo = 'youremail@email.com'; //Put your own email address here
        $body = "Name: $name \n\nEmail: $email \n\nSubject: $subject \n\nComments:\n $comments";
        $headers = 'From: My Site <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;

        mail($emailTo, $subject, $body, $headers);
        $emailSent = true;

1 个答案:

答案 0 :(得分:3)

很多原因:

  1. 您的服务器上未正确配置邮件。如果mail()无法将电子邮件移交给SMTP服务器,则会返回布尔值FALSE。你没有检查那个条件
  2. 未正确配置SMTP服务器以允许您通过它发送
  3. 接收方服务器将您的发送服务器列入黑名单
  4. 该电子邮件被视为垃圾邮件并且正在被删除
  5. 开始寻找的第一个地方是mail()的返回值。然后查看您的SMTP服务器日志,看看PHP交给它后电子邮件(如果)会发生什么。 SMTP服务器的日志还会说明接收服务器是否退回/拒绝它。

    如果它被静默地扔在接收服务器上的垃圾邮件文件夹中,那么就没有证据证明这一点,你将不得不在接收端进一步调查。

    电子邮件是一项复杂的业务,需要执行许多非常规的步骤,每个步骤都必须正常工作。沿着线路和电子邮件的任何地方的任何故障都可能消失。你必须调查在这些阶段的每一个阶段发生的事情,以找出为什么没有交付的东西。