联系表格不发送信息

时间:2013-02-21 06:01:32

标签: php forms email contact

我最近在另一个主题上得到了一些帮助,并且能够从我的联系表单中收到一封电子邮件,但是除了消息文本之外的所有信息都被排除在外,并且它是从“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 = "______@gmail.com";
$subject = "Contact Form";
$mailheader = "From: $email \r\n";

$to ='______@gmail.com';
$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>

2 个答案:

答案 0 :(得分: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,也不意味着将要发送消息。所有mail()都将消息添加到队列中(使用sendmail或您在php.ini中设置的任何内容)

没有可靠的方法来检查消息是否已在php中发送。你必须查看邮件服务器日志。

答案 1 :(得分:0)

您使用的变量名称错误。

请将邮件调用的最后一个参数从$ header更改为$ 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);