首页 > 解决方案 > PHP HTML 联系我们表单问题

问题描述

我正在使用 html (bootstrap4) 联系我们页面并尝试使其动态化。使用 pear 邮件的 php 测试脚本可以进行服务器测试。

但是,当尝试使动态和调用归档到电子邮件中时出现问题,它不起作用

任何人都可以在 php 脚本下面查看并告诉我问题出在哪里

我如何在这里调用这部分: $email_subject ?电子邮件正文?和电子邮件?

<form id="contact-form" method="post" action="test.php">
  <div class="row">
    <!-- Name -->
    <div class="col-md-6 mb-2">
      <input type="text" name="Full_Name" class="form-control" placeholder="Firstname *" required="required" data-error="Firstname is required.">
    </div>
    <!-- Email -->
    <div class="col-md-6 mb-2">
      <input type="email" name="email" class="form-control" placeholder="email *" required="required" data-error="Valid email is required.">
    </div>
    <!-- subject -->
    <div class="col-md-12 mb-2">

      <input type="text" name="subject" class="form-control" placeholder="subject *" required="required" data-error="Valid subject is required.">
    </div>
    <!-- Message -->
    <div class="col-md-12 mb-2">
      <textarea name="message" class="form-control" placeholder="Message  *" rows="4" required="required" data-error="Please,leave us a message."></textarea>
    </div>
    <!-- Submit Button -->
    <div class="col-12 text-right">
      <input type="submit" class=" form-control btn btn-success btn-send" value="Send message">
    </div>
  </div>
</form>
<!-- Email -->
<div class="col-md-6 mb-2"> <input type="email" name="email" class="form-control" placeholder="email *" required="required" data-error="Valid email is required."> </div>

<?php

error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED ^ E_STRICT);

require_once "Mail/Mail-1.4.1/Mail.php";
$name = $_POST["Full_Name"];
$email = $_POST["email"];
$subject = $_POST["subject"];
$message = $_POST["message"];

$host = "*******"; <!--i will use my hosting server url-->
$username = "*******"; <!--i will use my email-->
$password = "*****";  <!--i will use here my email pss-->
$port = "2525";
$to = "******";  <!--i will use the email here-->
$email_from = "*****";  <!--how to call email from here by input that i defined above in php file->
$email_subject = "******" ; <!--how to call sujectl from here by input that i defined above in php file->
$email_body = "*****";    <!--how to call message from here by input that i defined above in php file->
$email_address = "*****";   

$headers = array ('From' => $email, 'To' => $to, 'Subject' => $subject, 'Message' => $message, Reply-To' => $email_address);
$smtp = Mail::factory('smtp', array ('host' => $host, 'port' => $port, 'auth' => true, 'username' => $username, 'password' => $password));
$mail = $smtp->send($to, $headers, $email_body);


if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
?>

标签: phphtmlforms

解决方案


我对代码做了一些修改,这可能会有所帮助,如果您使用 gmail 发送电子邮件,请参阅本文的最后一点:https ://help.dreamhost.com/hc/en-us/文章/216140597-我如何发送-PHP-mail-via-SMTP-

<?php

error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED ^ E_STRICT);

require_once "Mail/Mail-1.4.1/Mail.php";

$name = $_POST["Full_Name"];
$email = $_POST["email"];
$subject = $_POST["subject"];
$message = $_POST["message"];

$host = "*******"; <!--i will use my hosting server url-->
$username = "*******"; <!--i will use my email-->
$password = "*****";  <!--i will use here my email pss-->
$port = "2525";

$to = "******";  <!--i will use the email here-->
$reply_to = "*****";   

// Please note the change to the headers
$headers = array ('From' => $email, 'To' => $to, 'Subject' => $subject, Reply-To' => $reply_to);
$smtp = Mail::factory('smtp', array ('host' => $host, 'port' => $port, 'auth' => true, 'username' => $username, 'password' => $password));
$mail = $smtp->send($to, $headers, $message);


if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
?>

推荐阅读