<?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);
}
}
?>
任何人都可以帮助我吗?我认为它是一个体面的形式,从我在网上看到的,有标题等。不知道为什么这将是gmail垃圾邮件,试图找到解决方案,并做出改变,但没有运气。
答案 0 :(得分:1)
您的代码中没有明显错误.GMail(和其他邮件程序)需要包含更多信息才能将垃圾邮件分数提高到垃圾邮件阈值以上。
考虑使用更精确的邮件程序系统,例如PHPMailer http://phpmailer.worxware.com/或其他类似的类,以生成您的电子邮件。这些将生成所需的标题并格式化电子邮件,以防止大多数(如果不是全部)邮件客户端将电子邮件标记为垃圾邮件。
答案 1 :(得分:1)
无论您使用库发送邮件是什么,如果它以垃圾邮件显示,那么请始终检查邮件数据中的标题。
请检查您的标题信息我肯定您错过了一些东西。
对于任何简单邮件,都需要一些最小标头信息。
喜欢,
$headers = 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Additional headers
$headers .= 'From: MyCompany <abc@mycompany.com>' . "\r\n";
您可以根据需要添加更多内容。祝你好运['}
答案 2 :(得分:1)
检查您的邮件标题(在Gmail本身中),看看为什么垃圾邮件分数很高。 请注意,许多垃圾邮件过滤器会检查电子邮件中是否只有HTML还是只有图像,这可能是导致垃圾邮件分数过高的原因。
我对Gmail垃圾邮件过滤器了解不多,但我知道我们的垃圾邮件过滤器会检查这类内容。