无法通过PHP邮件功能发送邮件

时间:2021-07-23 15:08:42

标签: php html forms phpmailer

我一直在尝试通过我网站上的联系表格发送邮件。我使用了 POST 方法,这似乎适用于我的另一个项目,但现在我对代码中的问题感到困惑。我确实复制粘贴了代码,但似乎仍然遇到错误。还有什么方法可以显示发件人的姓名而不是实际显示的乱码?


//PHP CODE

<?php 
    function has_header_injection($str){
        return preg_match("/[\r\n]", $str);
    }

    if(isset ($_POST['submit'])){
      $fname = $_POST['fname'];
      $lname = $_POST['lname'];
      $email = $_POST['email'];
      $msg = $_POST['msg'];

        if(has_header_injection($name) || has_header_injection($email)){
            die();
        }

        if(!$fname || !$lname || !$email || $msg){
            echo '<h4> All fields required!</h4>';
            exit;
        }

      $to = 'mymail8@gmail.com';                    //FOR ELUCIDATION

      $subject = $fname . $lname ."sent you via your contact form";

      $message = "Name: ". $fname . $lname;
      $message .= "Email: $email\r\n";
      $message .= "Message:\r\n$msg";

      $message = wordwrap($message, 100);

      $headers = "MIME-Version: 1.0" . "\r\n";
      $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
      $headers .= "From: $lname <$email>\r\n";
      $headers .= "X-Priority: 1\r\n";
      $headers .= "X-MSMail-Priority: High\r\n\r\n";

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

    }

    else{

        echo "failed to send mail!";
    }
    
?>


   //FORM (HTML)

   <form action="mail-handler.php" class="msg" method="POST">
                <div class="name">
                    <div class="fname">
                        <div>FIRST NAME</div>
                        <input type="text" placeholder="Enter your first name" id="fname" name="fname">
                    </div>
                    <div class="lname">
                        <div>LAST NAME</div>
                        <input type="text" placeholder="Enter your last name" id="lname" name="lname">
                    </div>
                </div>
                <div class="add-info">
                    <div class="mail">
                        <div>E-MAIL</div>
                        <input type="text" placeholder="Enter your email" id="mail" name="email">
                    </div>
                    <div class="phn">
                        <div>PHONE NUMBER</div>
                        <input type="text" placeholder="Enter your phone number" id="phn" name="phn">
                    </div>
                </div>
                <div class="msg-box">
                    <div>MESSAGE</div>
                    <input type="text" placeholder="Enter your Message" id="msg"  name="msg" >
                </div>
                <button type="submit" id="sub" name="aubmit">Submit</button>
            </form>

0 个答案:

没有答案