为什么通过联系表发送的消息都进入垃圾邮件箱?我的代码有什么问题?

Why the messages sent via contact form all go to the spam box? What's wrong with my code?

我正在使用以下代码通过我网站的联系表发送消息。问题是所有邮件都到达垃圾邮件箱。 我怀疑这是因为这部分 "From:" . $_POST['email']

你对这个问题有什么看法?

谢谢,

<?php
// Email Submit
// Note: filter_var() requires PHP >= 5.2.0
if ( isset($_POST['email']) && isset($_POST['name']) && isset($_POST['message']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) ) {

  // detect & prevent header injections
  $test = "/(content-type|bcc:|cc:|to:)/i";
  foreach ( $_POST as $key => $val ) {
    if ( preg_match( $test, $val ) ) {
      exit;
    }
  }

  //send email
 mail( "XYZ****@hotmail.com", "New message from: ".$_POST['name'], $_POST['message']."\nFrom page: ". str_replace("http://", "", $_SERVER['HTTP_REFERER']), "From:" . $_POST['email'] . "\r\n" . "BCC: ABC****@gmail.com" );

}
?>

让您的 PHP mail() 电子邮件减少垃圾邮件 使用 Headers

$headers .= "Reply-To: The Sender <sender@sender.com>\r\n";
$headers .= "Return-Path: The Sender <sender@sender.com>\r\n";
$headers .= "From: The Sender <senter@sender.com>\r\n";

但是 headers 不仅仅适用于设置有关发件人的详细信息。它们对于设置内容类型、电子邮件优先级等也很重要。以下是一些额外的 headers 外观。

$headers .= "Organization: Sender Organization\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
$headers .= "X-Priority: 3\r\n";
$headers .= "X-Mailer: PHP". phpversion() ."\r\n"

请务必将第四个参数替换为 $headers 变量,如下所示。

mail("recipient@recipient.com", "Message", "A simple message.", $headers);