我最近在另一个主题上得到了一些帮助,并且能够从我的联系表单中收到一封电子邮件,但是除了消息文本之外的所有信息都被排除在外,并且它是从“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>
答案 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);