表单中的内容未发送到网络邮件

Content from Form not sent to webmail

我正在使用 Swiftmailer 创建表单。问题是,表单内部没有任何内容,但 PHP 正文出现在电子邮件中。我也看过 Youtube 和 Google 的一些教程,尝试过但失败了,还没有任何效果。

HTML

<form id="contactForm" method="POST" action="form-process.php">
            <div class="row">
                <div class="form-group col-md-6">
                    <label class="h4">Your Name</label>
                    <input type="text" class="form-control" id="name" placeholder="Enter name" required data-error="NEW ERROR MESSAGE">
                    <div class="help-block"></div>
                </div>
                <div class="form-group col-md-6">
                    <label class="h4">Your Email</label>
                    <input type="text" class="form-control" id="email" placeholder="Enter name" required>
                    <div class="help-block"></div>
                </div>
            </div>
            <div class="form-group">
                    <label class="h4">Your Message</label>
                    <textarea id="message" class="form-control" rows="5" placeholder="Enter your message" required></textarea>
                    <div class="help-block"></div>
                </div>
                <button type="submit" id="form-submit" class="btn btn-success btn-lg pull-right ">Submit</button>
        <div id="msgSubmit" class="h3 text-center hidden"></div>
        <div class="clearfix"></div>
        </form>

PHP

<?php

require_once 'swiftmailer-5.x/lib/swift_required.php';

// Create the Transport
$transport = Swift_SmtpTransport::newInstance('mail.mysite.com', 465, 'ssl')
  ->setUsername('mysite@domain.com')
  ->setPassword('password')
  ;

// Get data 

$name=filter_var($_POST['name'], FILTER_SANITIZE_STRING);
$email=filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
$message=filter_var($_POST['message'], FILTER_SANITIZE_STRING);

$data = "Name: " . $name . "<br />" .
        "Email: " . $email . "<br />" .
        "Message: " . $message . "<br />";

// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);

// Create a message
$message = Swift_Message::newInstance('Feedback Form')
  ->setFrom(array('mysite2@domain.com' => 'Feedback Form'))
  ->setTo(array('mysite@domain.com' => 'Feedback Form'))
  ->setBody($data, 'text/html')
  ;

// Send the message
$result = $mailer->send($message);

?>
<p>Thank you for give us your feedback. We will respond to your feedback as soon as possible.</p>
<p>Please click <button type="btn btn-success"><a href="contact.html">Here</a></button> to return to the site.</p>

这是屏幕截图

我做错了什么?帮我。 (使用Bootstrap作为表格)

好的,您的表单输入似乎缺少名称属性。

添加属性,然后您的表单应该可以工作,例如:

<input type="text" class="form-control" id="name" name="name" placeholder="Enter name" required data-error="NEW ERROR MESSAGE">
<input type="text" class="form-control" id="email" name="email" placeholder="Enter name" required>
<textarea id="message" class="form-control" name="message" rows="5" placeholder="Enter your message" required></textarea>

问题是您必须将名称属性添加到输入中。
所以 <input type="text" class="form-control" id="name" placeholder="Enter name" required data-error="NEW ERROR MESSAGE">
您应该使用 <input type="text" class="form-control" id="name" name="name" placeholder="Enter name" required data-error="NEW ERROR MESSAGE"> 以便您的 PHP 脚本可以从 POST 请求附带的数组中获取此值。
将名称属性添加到每个输入,然后您的脚本将在表单提交后获取它。