2013-02-21 101 views
0

我最近得到了另一個主題的一些幫助,並能夠從我的聯繫表格中收到一封電子郵件,但除了郵件文本以外的所有信息都被排除在外,並且它是從「Apache」發送的。有什麼理由可能會發生?聯繫表格不發送信息

<?php 
if(isset($_POST['submit'])){ 
$name = $_POST['name']; 
$company = $_POST['company']; 
$email = $_POST['email']; 
$phone = $_POST['phone']; 
$message = $_POST['message']; 
$formcontent="From: $name \n Message: $message"; 
$recipient = "[email protected]"; 
$subject = "Contact Form"; 
$mailheader = "From: $email \r\n"; 

$to ='[email protected]'; 
$send_contact=mail($to,$subject,$message,$header); 

// Check, if message sent to your email 
// display message "We've received your information, thank you" 

if($send_contact){ 
echo "We've received your contact information, thank you"; 
} 
else { 
echo "Error, please try again"; 
} } 
?> 


<form action = "../mail.php"method="POST"> 
<p>Name</p> <input type="text" name="name"> 
<p>Company</p> <input type="text" name="company"> 
<p>Email</p> <input type="text" name="email"> 
<p>Phone</p> <input type="text" name="phone"> 
<p>Message</p><textarea name="message" rows="4" cols="25"></textarea><br /> 
<input type="submit" value="Submit" name="submit"> 
</form> 

回答

0

您使用的錯誤變量名稱。

請從$頭郵件調用的最後一個PARAM更改爲$ mailHeader

$send_contact=mail($to,$subject,$message,$header); 

$send_contact=mail($to,$subject,$message,$mailHeader); 

追加你在發送前需要的所有信息。使用以下代碼,

$name = $_POST['name']; 
$company = $_POST['company']; 
$email = $_POST['email']; 
$phone = $_POST['phone']; 
$message = $_POST['message']; 
$messageContent = $name."\n".$company."\n".$email."\n".$phone."\n".$message."\n"; 

$send_contact=mail($to,$subject,$messageContent,$mailHeader); 
+0

它仍然給我發了一條消息,但沒有任何信息出現。 – usefulbattery 2013-02-21 06:16:34

+0

你在哪裏發送郵件功能的信息?你沒有發送。那麼它將如何來。只發送消息變量而不是其他變量,如電話,公司,電子郵件。 – 2013-02-21 06:26:57

+0

編輯我的代碼檢查並嘗試那樣。 – 2013-02-21 06:30:07

0

編輯本

send_contact=mail($to,$subject,$message,$header); 

send_contact=mail($to,$subject,$message,$mailheader); 

,你也能發送這樣

send_contact = main($to,$subject,$formcontact,$mailheader); 

,如果你想......和

在php中發送郵件不是一個一步的過程。 mail()返回true/false,但即使它返回true,也不表示消息將被髮送。所有的郵件()做的是將消息添加到隊列(使用sendmail或任何你在php.ini中設置)

有沒有可靠的方法來檢查消息是否已在PHP中發送。您將不得不查看郵件服務器日誌。

+0

並且$ formcontent'在哪裏? :) – 2013-02-21 06:10:34

+0

在郵件函數通過標題我們cn發送formcontent但提問者沒有提及它的郵件功能,所以我沒有提到我的.... ofcourse它不是一個manidatory發送formcontact正確.. ?? – Gautam3164 2013-02-21 06:13:41