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