2016-03-02 73 views
-1

我已经完成了对此的研究,但似乎无法使其工作。如何在我的网站上设置联系表单?

我正在寻找添加联系表单到我的网站,直接发送电子邮件给我。我观看过视频并使用了我在网上找到的代码,但没有任何效果。我甚至暂时禁用了我的网站并上传了一个空白的联系表单(下面的代码)和一个php文件(下面的代码),我唯一的结果是PHP文件末尾的echo命令显示出来。但是,电子邮件仍然不会发送。

我错过了什么?谢谢!

HTML:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <title>Temp</title> 

</head> 
<body> 
    <form method="post" action="send.php" name="contact_form"> 
     <p> 
      <input name="name" type="text" /> 
     </p> 
     <p> 
      <input name="email" type="text" /> 
     </p> 
     <p> 
      <textarea name="message"></textarea> 
     </p> 
     <p> 
      <input type="submit" name="submit" id="submit" value="Submit" /> 
     </p> 
    </form> 
</body> 
</html> 

PHP:

<?php 

$name = $_POST['name']; 
$email = $_POST['email']; 
$message = $_POST['message']; 
$to = "[email protected]"; 
$subject = "Contact Form Submission"; 

mail ($to, $subject, $message, "From: " . $name); 
echo "Your message has been sent. You can expect to hear from us soon."; 

?> 
+0

你会得到什么错误? – Rhopercy

+0

网上有很多关于这类东西的教程。 – Sudoscience

+0

检查您的电子邮件服务器上的垃圾邮件文件夹 – Rhopercy

回答

1

我敢肯定,这是一个重复,但我只是想提一两件事情来检查。

您的mail()调用是否返回true?我会检查。您的PHP安装可能无法正确设置以发送邮件。有关于如何检查和配置的无数帖子,如果您还没有(here's one, for example),我建议您检查一下。

根据您承载的位置,您的主机的配置可能会限制所有不在您所托管域的外发邮件。 (我自己在共享主机上遇到过这个问题。)在这里,您将“发件人”标题设置为提交表单的人员的名称(如下所示:“From:John Doe”)。这可能是电子邮件发送或接收方面的问题(任何一方因为它不是来自电子邮件地址或有效的电子邮件地址等而拒绝它)。尝试将“from”值设置为您的主机上有效的电子邮件地址(例如“[email protected]”)。然后,只需将该人的姓名和电子邮件地址包含在电子邮件的$message中。

希望有所帮助。

+0

谢谢戴维斯。我会检查一下。不幸的是,我根本不了解太多的PHP,并且在这方面盲目地用直觉工作。如果有一些JS或HTML方式来做到这一点会很好。 – howck

+0

为了什么是值得的,我把你的HTML和PHP直接复制到我自己的服务器上并运行它,并且即使只把'From:John Doe'(它附加了一个服务器的电子邮件地址),邮件也如预期般到达。所以,我认为你的代码很好。我相信错误在于您的PHP邮件配置或发送或接收电子邮件服务器处理不当或不喜欢他们得到的东西。 – Davis

+0

这非常有帮助,谢谢。我通过GoDaddy托管代码,并被他们的支持告知,他们认为问题不在他们的最终。奇怪的。无论哪种方式,谢谢。 – howck

相关问题