PHP mail() 不接受变量


PHP mail() is not accepting variables

由于某种原因,$name、$email和$message变量没有传递到$msgcontents和$headers变量中。填写表单并单击"提交"后,收件箱中的邮件如下所示:

主题:来自联系表的消息

发件人

:未知发件人

日期:2014年11月17日(周一)晚上7:44

至: myemail@myemail.com

名字:
电子邮件:
消息:

我使用 var_dump() 来查看我的变量是否在单击提交后被填充,但它们是,但由于某种原因,它们没有被$msgcontents和$headers拾取。我哪里出错了?

这是我的代码:

<?php
        $name = trim(htmlspecialchars($_POST['name'], ENT_QUOTES));
        $email = trim($_POST['email']);
        $message = trim(htmlspecialchars($_POST['message'], ENT_QUOTES));
            $to = "myemail@myemail.com";
            $subject = "Message From Contact Form";
            $msgcontents = "Name: $name <br>  Email: $email <br>  Message: $message";
            $headers = array("MIME-VERSION: 1.0",
                             "Content-type: text/html; charset=iso-8859-1",
                              "From: $name <$email>",
                              "Reply-To: contact@info84.com",
                              "X-Mailer: PHP/" . PHP_VERSION
                             );
            $headers = implode("'r'n", $headers);      
            $mailsent = mail($to, $subject, $msgcontents, $headers);                  
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    </head>
    <body>
    <form id="contactform" method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" novalidate> 
    <input type="text" name="name" placeholder="Your Name">
    <input type="email" name="email"  placeholder="Your Email">
    <textarea name="message" placeholder="Your Message"></textarea>
    <input type="submit" name="submitform" value="send">
    </form>
<?php
var_dump($to); 
?>
<br>
<?php
var_dump($subject);
?> 
<br>
<?php
var_dump($msgcontents); 
?>
<br>
<?php
var_dump($headers); 
?>
<br>
<?php
var_dump($name); 
?>
<br>
<?php
var_dump($email); 
?>
<br>
<?php
var_dump($message); 
?>
    </body>
    </html>

我想您检查从第一页加载发送的消息(没有表单)

尝试包装您的电子邮件发送代码,如下所示:

if (isset($_POST['submitform'])) {
  //...
  mail(...);
  //...
}

然后,当页面加载时,未发送任何消息,但当您单击提交按钮时,邮件已发送