我设法使我的联系表单工作,但不知怎的,我不能让它发送我想要的消息......
我的代码是:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$messagesubject = $_POST['subject'];
$text = $_POST['text'];
$to = "name@email.com";
$subject = 'Message from a site visitor '.$name;
$content = 'Name: '.$name."\r\n";
$content .= 'E-mail: '.$email."\r\n";
$content .= 'Subject: '.$messagesubject."\r\n";
$content .= 'Message: '.$text."\r\n";
$send_contact=mail($to,$subject,$content);
if($send_contact){
echo "Thank you!";
}
else {
echo "ERROR";
}
?>
我收到一封邮件,但发件人地址(From)是从托管服务器写的我的电子邮件地址。如果我添加$ headers(我创建了这样的标题:“$ headers ='From:'。$ field_email。”\ r \ n“;”)在mail()中,而不是我没有收到任何邮件...
请帮忙......
(*我记得我的帖子)
答案 0 :(得分:2)
你有三个错误(和一个红利错误):
您将邮件正文放在名为$message
的变量中,但在$text
函数中使用名为mail()
的变量。
您的标头使用了错误的变量。您使用$email
它应该是$headers
此外,您的mail()
功能中的变量似乎无序。标题依赖于消息体。
您编写了一个名为$formcontent
的变量,但从未使用它。无论如何,$message
都是多余的。
$send_contact=mail($to,$subject,$message,$headers);
答案 1 :(得分:0)
试试这个
<?php
error_reporting(0);
if(isset($_POST['submit_button']))
{
$to = 'name@gmail.com';
$name = $_POST['name'];
$email = $_POST['email'];
$msg = $_POST['msg'];
$subject = $_POST['subject'];
$message.="Name : $name \n \n";
$message.="Email : $email \n \n";
$message.="Message : $msg \n \n";
$headers = "From: ".$_POST['email']." (My Email Form )";
if(mail($to, $subject, $message, $headers))
{
echo "Thank you!";
}
else {
echo "ERROR";
}
}
?>
<form id="contact-form" method="POST">
<input name="name" type="text" class="form-control" placeholder="Name" required>
<input name="email" type="email" class="form-control" placeholder="Email" required>
<input name="subject" type="text" class="form-control" placeholder="Subject" required>
<textarea name="msg" class="form-control" placeholder="Message" rows="5" cols="30" required></textarea>
<input type="submit" name="submit_button" value="send"/>
</form>