2013-11-27 59 views
-2

我使用下面的代碼來嘗試發送電子郵件 - 我看不到任何問題 - 但它不工作,它顯示消息「發送電子郵件」但我沒有收到任何東西。郵件()函數似乎沒有工作

<?php 
$to = "[email protected]"; 
$subject = "Query"; 
$message_body.="Name: ".$_POST["name"]."<br>\n"; 
$message_body.="JobTitle: ".$_POST["jobtitle"]."<br>\n"; 
$message_body.="Phone: ".$_POST["phone"]."<br>\n"; 
$message_body.="Email: ".$_POST["email"]."<br>\n"; 
$header = "Reply-To: ".$_POST["email"]."\n"; 
$header .= "Content-type: text/html; 
mail($to, $subject, $message_body, $header); 
echo "Email sent"; 
?> 

任何人都可以幫忙嗎?

+2

當然,它顯示「發送電子郵件」,因爲你從不檢查它是否實際發送。根據郵件的[手冊](http://www.php.net/mail):*如果郵件成功接收發送,則返回TRUE,否則返回FALSE。* – h2ooooooo

+2

注意郵件頭注入,永遠不要信任用戶內容!郵件標題應該用'\ r \ n'換行。 –

+0

首先刪除你的'
' –

回答

0

你的榜樣缺少「在過去的$標題行

嘗試添加:

error_reporting(E_ALL); 
ini_set("display_errors","On"); 

在文件的開頭,以顯示錯誤/警告你最有可能的sendmail是不是在您的服務器上運行

2

檢查1)爲了使郵件功能可用,PHP需要安裝並運行的電子郵件系統。要使用的程序由php.ini文件中的配置設置定義。

您剛纔提到,沒有錯誤..所以..旁邊

檢查2)檢查功能.. TRUE或FALSE

檢查3的返回值),查看是否通過啓用的error_reporting任何警告(E_ALL )

檢查4)實際郵件發送,但去了垃圾郵件文件夾。

對於郵件(),需要注意的是,只是因爲郵件是 接受交付,這並不意味着該郵件實際上將達到 預期目標是非常重要的。

此外,它在Windows和Unix中的工作方式也有所不同。