以下是我的表单处理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上运行
答案 0 :(得分:2)
除非您设置了邮件服务器,否则PHP的mail()
功能很少开箱即用。您必须安装一个然后配置PHP才能使用它。 Here's a tutorial I just Googled.
答案 1 :(得分:1)
你必须购买邮件服务器来做这件事。据我所知,XAMPP和其他本地服务器程序不提供hmailserver。