没有收到PHP的电子邮件

时间:2014-08-24 15:17:08

标签: php email

以下是我的表单处理PHP页面的完整代码:

$success = false;

if (isset($_POST['name'])) {

    $name = $database->clean_input( $_POST['name'] );
    $company = $database->clean_input( $_POST['company'] );
    $email = $database->clean_input( $_POST['email'] );
    $phone = $database->clean_input( $_POST['phone'] );
    $content = $database->clean_input( $_POST['content'] );

    $database->query(" INSERT INTO messages (name,company,email,phone,content) VALUES ('" . $name . "', '" . $company . "','" . $email . "', '" . $phone . "', '" . $content . "') ");

    $message = 'FROM: ' . $name . '\r\n\r\nCOMPANY: ' . $company . '\r\n\r\nEMAIL: ' . $email . '\r\n\r\nPHONE: ' . $phone . '\r\n\r\nCONTENT: ' . $content;
    $message = wordwrap($message, 70, "\r\n");

    $headers = 'From: no-reply@censored.com' . "\r\n" .
        'Reply-To: contact@censored.com' . "\r\n" .
        'X-Mailer: PHP/' . phpversion();

    if(@mail('me@censored.com', 'censored.com message from ' . $name, $message, $headers)) {
        $success = true;
    }
    else
      echo '<p>Error: Your request could unfortunately not be processed, please use another contact method or try again later.</p>';

}

执行此操作后,$success = true;所以邮件似乎已成功发送,但20分钟后,我的收件箱中仍然没有收到任何内容。

我过去在现场网站上使用了相同的代码,但确实有效。我现在正在使用XAMPP在localhost上运行它,我想知道它是否不是配置问题。

我有点失去了如何进一步调试这个问题。

编辑:

我正在使用最新版本的XAMPP并在Mac OS X上运行

2 个答案:

答案 0 :(得分:2)

除非您设置了邮件服务器,否则PHP的mail()功能很少开箱即用。您必须安装一个然后配置PHP才能使用它。 Here's a tutorial I just Googled.

答案 1 :(得分:1)

你必须购买邮件服务器来做这件事。据我所知,XAMPP和其他本地服务器程序不提供hmailserver。