首页 > 解决方案 > 使用 Bootstrap 4 和 PHP 发送邮件

问题描述

我正在为一个客户开发一个网站,该客户当然需要一个有效的联系表格。我的 PHP 技能相当薄弱,所以与其让自己因大量示例而发疯,我想我会直接寻求帮助。

这是我使用 Bootstrap 4 框架构建的表单:

<form id="contactForm" method="post" action="contact-form.php" role="form">
  <div class="messages"></div>
  <div class="controls"></div>
  <div class="form-row">
    <div class="form-group col-md-6">
      <label for="clientName">Your Name *</label>
      <input class="form-control" id="clientName" type="text" placeholder="Enter Your Name" required="required" data-error="Your name is required." />
      <div class="help-block with-errors"></div>
    </div>
    <div class="form-group col-md-6">
      <label for="petName">Your Pet's Name *</label>
      <input class="form-control" id="petName" type="text" placeholder="Pet Name" required="required" data-error="Your pet's name is required." />
      <div class="help-block with-errors"></div>
    </div>
  </div>
  <div class="form-row">
    <div class="form-group col-md-6">
      <label for="email">Email Address *</label>
      <input class="form-control id="email" type="email" placeholder="you@abc.def" required="required" data-error="Your email address is required.">
      <div class="help-block with-errors"></div>
    </div>
    <div class="form-group col-md-6">
      <label for="phone">Telephone Number</label>
      <input class="form-control" id="phone" type="text" placeholder="123-456-7890" />
    </div>
  </div>
  <div class="form-group">
    <label for="message">Message</label>
    <textarea class="form-control id="message" placeholder="Include any message here." rows="4" />
  </div>
  <div class="form-row">
    <div class="form-group col-md-6>
      <input class="btn btn-success" type="submit" value="Send Message" >
    </div>
  </div>
</form>

还有似乎不起作用的PHP(重定向除外。效果很好):

<?php
  // If the client name and email don't match
  if($_POST['clientName'] != $_POST['email']){
    $youremail = 'myemail@domain.com';
    $body = "New Appointment Request
    <hr>
    From: $_POST[clientName]
    Pet Name: $_POST[petName]
    E-Mail: $_POST[email]
    Phone: $_POST[phone]
    Message: $_POST[message]";
    if( $_POST['email'] && !preg_match( "/[\r\n]/", $_POST['email']) ) {
      $headers = "From: $_POST[email]";
    } else {
      $headers = "From: $youremail";
    }
    mail($youremail, 'New Message', $body, $headers );
  }
  header('Location:contact-redir.html');
?>

我是否错过了完成这项工作的关键细节?或者对于现代邮件客户端来说,mail() 函数是否太旧/不安全?

标签: phpemailbootstrap-4contact-form

解决方案


推荐阅读