Php 来自邮件功能的邮件是垃圾邮件

Php 来自邮件功能的邮件是垃圾邮件,php,Php,我正在使用以下代码发送电子邮件,但不幸的是,电子邮件将成为垃圾邮件。请检查代码并需要建议…我正在使用php mail()函数发送邮件。。我犯了什么错误?代码是否正确?邮件正在发送,但以垃圾邮件的形式发送,而不是以收件箱的形式发送。所以我需要更正我的代码 <?php class mail { function setInput($data) { $data = trim($data); $data = addslashes($data);

我正在使用以下代码发送电子邮件,但不幸的是,电子邮件将成为垃圾邮件。请检查代码并需要建议…我正在使用php mail()函数发送邮件。。我犯了什么错误?代码是否正确?邮件正在发送,但以垃圾邮件的形式发送,而不是以收件箱的形式发送。所以我需要更正我的代码

<?php
class mail
{
    function setInput($data)
    {
        $data = trim($data);
        $data = addslashes($data);
        $data = htmlspecialchars($data);
        return $data;
    }
    public function send($data)
    {
            $email_to = "xyz@gmail.com";
        $email_subject=$this->setInput($data['Subject']);

        $phone = $this->setInput($data['Phone']); // required
        $email = $this->setInput($data['Email']); // required
        $name = $this->setInput($data['Name']); // not required
        $message = $this->setInput($data['Message']); // required

         $error_message = "";
         $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';

         if(!preg_match($email_exp,$email)) {
        $error_message .= 'The Email Address you entered does not appear to be valid.<br />';
        }
 
        $string_exp = "/^[A-Za-z .'-]+$/";
 
       if(!preg_match($string_exp,$name)) {
         $error_message .= 'The First Name you entered does not appear to be valid.<br />';
         }
 
        if(strlen($message) < 2) {
         $error_message .= 'The Comments you entered do not appear to be valid.<br />';
         }
 
        if(strlen($error_message) > 0) {
           died($error_message);
         }
 
        $email_message = "Form details below.\n\n";
 
     
         function clean_string($string) {
           $bad = array("content-type","bcc:","to:","cc:","href");
          return str_replace($bad,"",$string);
         }

        $email_message .= "Subject: ".clean_string($email_subject)."\n";
        $email_message .= "Email: ".clean_string($email)."\n";
        $email_message .= "Name: ".clean_string($name)."\n";
        $email_message .= "Comments: ".clean_string($message)."\n";

        $headers = 'From: '.$email."\r\n".
       'Reply-To: '.$email."\r\n" .
       'X-Mailer: PHP/' . phpversion();
        @mail($email_to, $email_subject, $email_message, $headers); 

        echo "<script>
          alert('Thank you for contacting us. We will be in touch with you very soon.');
           window.location.href='contact.php';
           </script>";

    }
}
$objclass=new mail();

if(isset($_REQUEST['page_action']))
{
   $page_action=$_REQUEST['page_action'];
   switch($page_action)
   {
      case "email-msg";
      $objclass->send($_POST);
      break;
   }
}

?>
请检查

  • 您的服务器(运行此PHP脚本)是否有反向DNS记录(PTR记录)

  • 是否已将发件人电子邮件($email)设置为具有SPF记录,将此服务器IP指定为电子邮件的合法来源。 (例如,在域DNS记录中使用TXT记录,如v=spf1 ip4:x.x.x a mx ptr~all,其中x.x.x.x是运行PHP脚本的服务器的IP)

  • 您还需要检查此服务器的IP是否已作为垃圾邮件源被列入黑名单。但请先检查上面的1和2

    另一种解决方案是通过SMTP服务器发送邮件。您可以使用PhpMailer来帮助您完成此操作()。如果您的SMTP服务器配置正确(且未被列为垃圾邮件源),则发送的邮件将到达收件人收件箱,但不会到达垃圾邮件文件夹。

    请检查

  • 您的服务器(运行此PHP脚本)是否有反向DNS记录(PTR记录)

  • 是否已将发件人电子邮件($email)设置为具有SPF记录,将此服务器IP指定为电子邮件的合法来源。 (例如,在域DNS记录中使用TXT记录,如v=spf1 ip4:x.x.x a mx ptr~all,其中x.x.x.x是运行PHP脚本的服务器的IP)

  • 您还需要检查此服务器的IP是否已作为垃圾邮件源被列入黑名单。但请先检查上面的1和2


    另一种解决方案是通过SMTP服务器发送邮件。您可以使用PhpMailer来帮助您完成此操作()。如果您的SMTP服务器配置正确(且未被列入垃圾邮件源黑名单),则发送的邮件将到达收件人收件箱,但不在垃圾邮件文件夹中。

    您也可以使用来检查电子邮件的格式和内容并获得“垃圾邮件分数”。您还可以使用来检查电子邮件的格式和内容并获得“垃圾邮件分数”