PHP 添加 $headers 时发送多封电子邮件的联系表

PHP contact form sending multiple emails when I add $headers

我有一个发送电子邮件的联系表,但将我的电子邮件服务器显示为 "from",因此很难回复从联系表发送的电子邮件

我试过添加

$headers = 'Reply-To: ' . $email . "\r\n" . 'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);

到我的脚本,虽然这在发送您可以回复的电子邮件方面非常有效,但它仍然发送了一封您无法回复的电子邮件!

我是一个 PHP 新手,所以我认为我在发送两条消息时出错了,如果有人可以指出这是什么,我将不胜感激,尽管我已经看过其他类似的问题在这里我找不到解决方案

这是我的代码:

include ("includes/header.php");
$pagetitle   = "Contact Us";
$description = "";
$keywords    = "";
$name        = ($_POST['name']);
$email       = ($_POST['email']);
$message     = ($_POST['message']);
$from        = ($_POST['email']);
$to          = 'info@mydomain.co.uk'; 
$subject     = "Enquiry from Visitor " . $name;
$human       = ($_POST['human']);
$headers     = 'Reply-To: ' . $email . "\r\n" . 'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>

<div class="container-fluid contactform">
   <div class="col-md-6 contactform-padding">   
     <h2>Contact Us</h2>

<?php 
    if (isset($_POST['submit']) && $human == '4') {              
      if (mail ($to, $subject, $body, $from)) { 
         echo '<p>Thanks for getting in touch. Your message has been sent & We will get back to you shortly!</p>';
       } else { 
          echo '<p>Something went wrong, go back and try again!</p>'; 
       }  
    } else if (isset($_POST['submit']) && $human != '4') {
       echo '<p>You answered the anti-spam question incorrectly!</p>';
    }
?>

 <form method="post" action="index.php" data-ajax="false" method="POST" enctype="multipart/form-data">
 <div class="form-group">
  <label class="control-label " for="name">
   <p>Name</p>
  </label>
  <input class="form-control" id="name" name="name" type="text"/>
 </div>

有人可以向我指出为什么要发送两封电子邮件吗?我真的很感激 - 我知道我犯了一个愚蠢的错误,我看不到 why/how

谢谢!

请再次检查代码。

您调用了两次邮件函数。 一个在上面,另一个在 if condition

从上面的代码中删除 邮件功能

可以根据您的 if 条件发送邮件