联系表单 php 不发送电子邮件


Contact form php not send email

我有一个联系人.HTML文件,其中包含以下代码:

<div>
    <form id="email-form" name="email-form" action="mail.php" data-name="Email Form">
        <input class="w-input text-field" id="name" type="text" placeholder="Enter your full name" name="name">
        <input class="w-input text-field" id="email" type="email" name="email" placeholder="Enter your email address">
        <input class="w-input text-field" id="phone" type="text" name="phone" placeholder="Enter your telephone number">
        <textarea class="w-input text-area" id="text-area" name="message" required placeholder="Your message here..."></textarea>
        <div class="div-spc">
            <button class="w-button button no-margin" type="submit">Submit Message</button>
        </div>
    </form>
  <div id="result"></div>
</div>

和文件邮件.php带有以下代码:

<?php    
define( "RECIPIENT_NAME", "Site name" );
define( "RECIPIENT_EMAIL", "xxx@domainame.com" );
$success = false;
$senderName = isset( $_POST['name'] ) ? preg_replace( "/[^'.'-'' a-zA-Z0-9]/", "", $_POST['name'] ) : "";
$senderEmail = isset( $_POST['email'] ) ? preg_replace( "/[^'.'-'_'@a-zA-Z0-9]/", "", $_POST['email'] ) : "";
$phone = isset( $_POST['phone'] ) ? preg_replace( "/[^'.'-'' a-zA-Z0-9]/", "", $_POST['phone'] ) : "";
$message = isset( $_POST['message'] ) ? preg_replace( "/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['message'] ) : "";
if ( $senderName && $senderEmail && $message ) {
  $recipient = RECIPIENT_NAME . " <" . RECIPIENT_EMAIL . ">";
  $headers = "From: " . $senderName . " <" . $senderEmail . ">";
  $success = mail( $recipient, $message, $headers );
  echo "<p class='success'>Mail Sent!</p>";
}    
?>

表单不起作用...我在浏览器的页面上有消息email sent。有人可以帮助我吗?

邮件发送需要 SMTP 设置。请正确检查它们。

此外,您的代码还会检查表单变量是否已发布。

它不检查邮件是否已发送。

将代码更改为:

$recipient = RECIPIENT_NAME . " <" . RECIPIENT_EMAIL . ">";
$headers = "From: " . $senderName . " <" . $senderEmail . ">";
$success = mail( $recipient, $message, $headers );
if ($success) {
 echo "<p class='success'>Mail Sent!</p>";
}