2011-04-18 67 views
-1

我是一名php初學者,我試圖通過使用php mail()函數的電子郵件發送表單數據。出於某種原因,我的表單正在處理並轉到感謝頁面,但我沒有收到包含數據的電子郵件。 我檢查了我的代碼,但無法找到問題所在!有人能請我幫忙嗎? 這裏是我的代碼示例:通過腳本發送的電子郵件未送達

<form class="form-wrapper" action="process_form.php" method="post"> 

     <label for="costumer_name">First Name</label><br/> 
     <input type="text" name="costumer_first_name"/> 

<button type="submit">Send</button> 
</form> 

這是process_form.php代碼

<?php 
$CustomerFirstName = $_POST['customer_first_name']; 

// Build the email 

$to = "[email protected]"; 
$headers = "From: $Email"; 
$subject = "Red T-shirt Web Order"; 
$message = "Red T-shirt Order Information:\n\n 
Customer First Name:".$CustomerFirstName."\n"; 

// Send the mail using PHPs mail() function 
mail($to, $subject, $message, $headers); 


// Redirect 
header("Location: thank_you.php"); 
?> 

謝謝:)

+0

windows,linux? – Neal 2011-04-18 15:16:54

+0

它是一個Windows服務器或Linux服務器? – kjy112 2011-04-18 15:17:04

+4

也在這一行'$ headers =「From:$ Email」;'創建'$ Email' – Neal 2011-04-18 15:17:29

回答

0

的問題可能是在這條線:

$headers = "From: $Email"; 

我沒有看到$Email曾經在您的代碼中實例化。

另外mail()對於Windows和Linux的工作方式不同。

+0

我認爲這是解決問題的辦法。接受這個! – 2011-04-18 15:39:17

0

我想你錯過指定SMTP主機名

+0

如果是Linux,你不需要那樣做。 OP沒有指定 – Neal 2011-04-18 15:27:03

1

嘗試只是讓一個靜態調用有:

mail('[email protected]', 'Test Subject', 'Test Message'); 

如果不工作,那麼它可能是您的SMTP服務器,或缺乏。

編輯:此外,由於$ Email沒有發送,所以您發送的是'From:'的頭部,這是一個無效的頭部,並且可能會導致SMTP垃圾。我知道它在使用MailEnable的服務器上執行,因爲我之前遇到過確切的錯誤。

0

$CustomerFirstName = $_POST['customer_first_name'];

<input type="text" name="costumer_first_name"/>

customer_first_name
costumer_first_name

現貨的差異! :-)

此外,$Email沒有定義和引號內,將需要定義和"From: " . $Email;

+0

這是一個好點! – 2011-04-18 15:38:55

0

正如尼爾提到你沒有從形式收集電子郵件或搶在你的PHP代碼,變量的值。

因爲在你的PHP代碼

而且$ CustomerFirstName不會被插入到任何您$消息你是指它作爲

$CustomerFirstName = $_POST['customer_first_name']; 

,而客戶用U但在你的HTML你用拼寫的那封信,拼寫字母o。

+0

是的,這是真的,但這是郵件內容,而不是'mail()'函數。 – Neal 2011-04-18 15:40:34