2016-03-02 75 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

相關問題