联系表格不会发送完整的电子邮件

时间:2014-03-31 13:48:24

标签: php email contact-form

我设法使我的联系表单工作,但不知怎的,我不能让它发送我想要的消息......

我的代码是:

<?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()中,而不是我没有收到任何邮件...

请帮忙......

(*我记得我的帖子)

2 个答案:

答案 0 :(得分:2)

你有三个错误(和一个红利错误):

  1. 您将邮件正文放在名为$message的变量中,但在$text函数中使用名为mail()的变量。

  2. 您的标头使用了错误的变量。您使用$email它应该是$headers

  3. 此外,您的mail()功能中的变量似乎无序。标题依赖于消息体。

  4. 您编写了一个名为$formcontent的变量,但从未使用它。无论如何,$message都是多余的。

  5. $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>