php电子邮件表单问题

时间:2013-07-01 12:58:48

标签: php forms email

我在设置PHP表单时遇到问题。这是我第一次尝试这样做。我有表格提交并发送到我的电子邮箱。但是我收到了2封电子邮件。

enter image description here

是不是说(未知发件人)????肯定不会。

enter image description here

并在此图片中显示只有一个表单提交后。它发送一封空白电子邮件,一封带有文本。但只有消息。怎么了?

<?php
$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$to = "adamgoredesign@gmail.com";
$subject = "New Message";

mail ($to, $subject, $message, "From: " . $name);
echo "Your Message has been sent";

?>

      <form id="contactform" name="contact" method="post" action="#">
  <div class="row">
    <label for="name">Your Name<span class="req">*</span></label>
    <input type="text" name="name" id="name" class="text" tabindex="1" placeholder="enter name" required>
  </div>
  <br>
  <div class="row">
    <label for="email">E-mail Address<span class="req">*</span></label>
    <input type="email" name="email" id="email" class="text" tabindex="2" placeholder="address@domain.com" required>
  </div>
  <br>
  <div class="row">
    <label for="subject">Subject<span class="req">*</span></label>
    <input type="text" name="subject" id="subject" class="text" tabindex="3" placeholder="subject title" required>
  </div>
 <br>
  <div class="row">
    <label for="message">Message<span class="req">*</span></label>
    <textarea name="message" id="message" class="textarea" tabindex="4" required></textarea>
  </div>
  <br>
  <div class="row">
  <input type="submit" name="submit" value="Send Message" id="submit" />
  </div>
  </form>

1 个答案:

答案 0 :(得分:4)

From标题应为电子邮件地址,或同时包含以下格式的姓名和电子邮件地址:

From: John Smith <j.smith@gmail.com>

它永远不应该只是一个名字,这就是你似乎在做的事情。另请记住使用\r\n终止标头。

将用户输入用作From标头通常不是一个好主意,因为它可能会引入标头注入漏洞,并且还可能导致垃圾邮件过滤器结果不一致。对于联系表单,我建议您使用自己的静态电子邮件地址。