Php Ajax联系人表单将在Gmail中成为垃圾邮件

Php Ajax联系人表单将在Gmail中成为垃圾邮件,php,ajax,Php,Ajax,您的代码中没有明显的错误。。GMail(和其他邮件发送者)需要在邮件头中包含比这多得多的信息,才能将垃圾邮件分数提高到垃圾邮件阈值以上 考虑使用更精细的邮件系统,比如PHPMailer或其他类似的类来生成您的电子邮件。这些将生成所需的邮件头并对电子邮件进行足够的格式化,以防止大多数(如果不是全部)邮件客户端将该电子邮件标记为垃圾邮件。无论您使用哪个库发送邮件,如果该库显示为垃圾邮件,请始终在邮件数据中检查您的邮件头 请检查你的标题信息,我肯定你遗漏了什么 对于任何简单的邮件,都需要一些最小的标题

您的代码中没有明显的错误。。GMail(和其他邮件发送者)需要在邮件头中包含比这多得多的信息,才能将垃圾邮件分数提高到垃圾邮件阈值以上


考虑使用更精细的邮件系统,比如PHPMailer或其他类似的类来生成您的电子邮件。这些将生成所需的邮件头并对电子邮件进行足够的格式化,以防止大多数(如果不是全部)邮件客户端将该电子邮件标记为垃圾邮件。

无论您使用哪个库发送邮件,如果该库显示为垃圾邮件,请始终在邮件数据中检查您的邮件头

请检查你的标题信息,我肯定你遗漏了什么

对于任何简单的邮件,都需要一些最小的标题信息

<?php
if($_POST)
{
    $to_email       = "example@gmail.com"; //Recipient email, Replace with own email here

    //check if its an ajax request, exit if not
    if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {

        $output = json_encode(array( //create JSON data
            'type'=>'error', 
            'text' => 'Sorry Request must be Ajax POST'
        ));
        die($output); //exit script outputting json data
    } 

    //Sanitize input data using PHP filter_var().
    $user_name      = filter_var($_POST["user_name"], FILTER_SANITIZE_STRING);
    $user_email     = filter_var($_POST["user_email"], FILTER_SANITIZE_EMAIL);
    $country_code   = filter_var($_POST["country_code"], FILTER_SANITIZE_NUMBER_INT);
    $phone_number   = filter_var($_POST["phone_number"], FILTER_SANITIZE_NUMBER_INT);
    $subject        = filter_var($_POST["subject"], FILTER_SANITIZE_STRING);
    $message        = filter_var($_POST["msg"], FILTER_SANITIZE_STRING);

    //additional php validation
    if(strlen($user_name)<4){ // If length is less than 4 it will output JSON error.
        $output = json_encode(array('type'=>'error', 'text' => 'Name is too short or empty!'));
        die($output);
    }
    if(!filter_var($user_email, FILTER_VALIDATE_EMAIL)){ //email validation
        $output = json_encode(array('type'=>'error', 'text' => 'Please enter a valid email!'));
        die($output);
    }
    if(!filter_var($country_code, FILTER_VALIDATE_INT)){ //check for valid numbers in country code field
        $output = json_encode(array('type'=>'error', 'text' => 'Enter only digits in country code'));
        die($output);
    }
    if(!filter_var($phone_number, FILTER_SANITIZE_NUMBER_FLOAT)){ //check for valid numbers in phone number field
        $output = json_encode(array('type'=>'error', 'text' => 'Enter only digits in phone number'));
        die($output);
    }
    if(strlen($subject)<3){ //check emtpy subject
        $output = json_encode(array('type'=>'error', 'text' => 'Subject is required'));
        die($output);
    }
    if(strlen($message)<3){ //check emtpy message
        $output = json_encode(array('type'=>'error', 'text' => 'Too short message! Please enter something.'));
        die($output);
    }

    //email body
    $message_body = $message."\r\n\r\n-".$user_name."\r\nEmail : ".$user_email."\r\nPhone Number : (".$country_code.") ". $phone_number ;

    //proceed with PHP email.

    $headers = 'From: '.$user_name.'' . "\r\n" .
    'Reply-To: '.$user_email.'' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

    $send_mail = mail($to_email, $subject, $message_body, $headers);

    if(!$send_mail)
    {
        //If mail couldn't be sent output error. Check your PHP email configuration (if it ever happens)
        $output = json_encode(array('type'=>'error', 'text' => 'Could not send mail! Please check your PHP mail configuration.'));
        die($output);
    }else{
        $output = json_encode(array('type'=>'message', 'text' => 'Hi '.$user_name .' Thank you for your email'));
        die($output);
    }
}
?>
$headers='内容类型:text/html;字符集=iso-8859-1'。“\r\n”;
//附加标题
$headers.=“发件人:MyCompany”。“\r\n”;
您可以根据需要添加更多。祝你好运['}

检查你的邮件标题(在Gmail中),看看为什么垃圾邮件得分那么高。 请注意,许多垃圾邮件过滤器会检查电子邮件中是否只有HTML或图像,这可能是导致垃圾邮件得分较高的原因


我对Gmail垃圾邮件过滤器不太了解,但我知道我们的垃圾邮件过滤器会检查类似的东西。

我们应该如何利用你的代码?至少在问一个适当的问题时表现出一些努力。抱歉,我在意识到之前点击了帖子:(非常感谢你的建议,我将切换到phpmailer:)太棒了。PHPMailer太棒了!如果你得到了答案,那么就接受并标记为答案,这样我们的朋友们——那些面临同样问题的人——就可以直接得到想法并轻松获得……谢谢
$headers = 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'From: MyCompany <abc@mycompany.com>' . "\r\n";