2013-02-21 103 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