首页 > 解决方案 > 如何使用 php mail() 函数

问题描述

我知道这段代码会在本地主机上出错,而​​不能在实时服务器上运行。

如您所见,我正在尝试为邮件功能运行此代码。此功能在我的其他站点上运行,但在此站点上工作。知道此代码将在本地主机上给出错误但不显示错误。表格可能有些问题。我不知道究竟是什么错误请告诉我问题。

function send-message()
{
      if(ISSET($_POST['submit'])) {
        $to        = "abc@example.com";
        $FROM_NAME= $_POST['name'];
        $cell = $_POST['cell'];
        $email     = $_POST['email'];
        $subject   = $_POST['subject'];
        $message   = $_POST['message'];
    
        $headers = "From:{$FROM_NAME} {$email} {$cell}";
        $result = mail($to, $subject, $message, $headers);
        if (!$result) {
          echo "error";
        }
        else{
          echo "sent";
        }
      }
  }

这是一个表格,请解决错误

<form method="post" id="contact-form" action="">
   <?PHP send-message(); ?> // function call here
   <div class="input-box mt-25">
       <label for="#">Full Name Here</label>
       <input type="text" name="name" placeholder=" Enter Name Here" required="">
       <i class="FAL FA-user"></i> //please ignore capital letter
    </div>
   <div class="input-box mt-25">
       <label for="#">Phone Number</label>
       <input type="text" placeholder="Enter your phone number *" name="cell" required="" max length="11" min length="11">
        <i class="FAS FA-phone-square"></i>
   </div>
   <div class="input-box mt-25">
       <label for="#">I Would Like To Discuss</label>
       <input type="email" name="email" placeholder="Enter your email" required="">
         <i class="far FA-envelope"></i>
   </div>
     <div class="input-box mt-25">
       <label for="#">Subject</label>
       <input name="subject" type="text" placeholder="Subject *" required="">
       <i class="FAS FA-book"></i>
   </div>
   <div class="input-box mt-25">
       <label for="#">Leave A Message</label>
       <text area name="message" id="#" cols="30" rows="10" placeholder="Write Message"></text area>
       <i class="FAL FA-pen-alt"></i>
   </div>
   <div class="submit-BTN text-left mt-20">
       <button type="submit" name="submit" class="main-BTN">Send Message</button>
   </div>

标签: phphtmlcssbootstrap-5

解决方案


您的代码中有多个错误。

send-message似乎不是一个有效的函数名。

另一个问题是关于该headers部分的,查看官方 php.net/mail 文档以了解如何mail正确使用该功能,以及如何编写正确的标题以及何时进行换行。

可能还有更多错误,我建议您在开发时启用(再次display_errorserror_reporting如果您不知道,请查看官方文档以了解如何启用它:))


推荐阅读