请检查以下PHP邮件功能代码。它是否正确?我的邮件是垃圾邮件。在下面的代码中,我收到邮件,但邮件正在垃圾邮件中登陆。如果我在gmail中检查原始文本,那么它会显示dmare失败。
<?php
$your_email = 'yjangir15@gmail.com';
$errors = '';
$name = '';
$visitor_email = '';
$phone = '';
$user_message = '';
if(isset($_POST['submit']))
{
$name = $_POST['name'];
$visitor_email = $_POST['email'];
$phone = $_POST['phone'];
$user_message = $_POST['query'];
///------------Do Validations-------------
if(empty($name)||empty($visitor_email)||empty($phone))
{
$errors .= "\n Name, Email ID and Phone Number. ";
}
if(IsInjected($visitor_email))
{
$errors .= "\n Bad email value!";
}
if(empty($_SESSION['6_letters_code'] ) ||
strcasecmp($_SESSION['6_letters_code'], $_POST['6_letters_code']) != 0)
{
$errors .= "\n Wrong Captcha Code!!!";
}
if(empty($errors))
{
//send the email
$to = $your_email;
$subject="New Admission Enquiry";
$from = $visitor_email;
$ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
$body ='
<title>A student $name submitted the admission enquiry</title>
<h1>A student ' . $name . ' submitted the admission enquiry</h1>
<p>Here are the Details!</p>
<table>
<tr>
<td><b>Name:</b></td><td>' . $name . '</td>
</tr>
<tr>
<td><b>Email Address:</b></td><td>' . $visitor_email . '</td>
</tr>
<tr>
<td><b>Contact No:</b></td><td>' . $phone . '</td>
</tr>
<tr>
<td valign="top"><b>Query:</b></td><td>' . $user_message . '</td>
</tr>
<tr>
<td><b>IP Address:</b></td><td>' . $ip . '</td>
</tr>
</table>
';
$seprator = md5(time());
$eol = PHP_EOL;
$headers = "From: " .($from) . "\r\n";
$headers .= "Reply-To: ".($from) . "\r\n";
$headers .= "Return-Path: ".($from) . "\r\n";;
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$headers .= "X-Priority: 3\r\n";
$headers .= "X-Mailer: PHP". phpversion() ."\r\n";
mail($to, $subject, $body, $headers);
header('Location: thankyou.php');
}
}
function IsInjected($str)
{
$injections = array('(\n+)',
'(\r+)',
'(\t+)',
'(%0A+)',
'(%0D+)',
'(%08+)',
'(%09+)'
);
$inject = join('|', $injections);
$inject = "/$inject/i";
if(preg_match($inject,$str))
{
return true;
}
else
{
return false;
}
}
?>
答案 0 :(得分:0)
首先,由于脚本中使用的许多变量都是用户生成的,因此您应该清理输入变量以避免来自用户的恶意代码。
您的电子邮件最终会进入垃圾邮件文件夹的原因可能有很多。最重要的两个是您正在使用的电子邮件服务器(正确的配置,发件人信誉等)和电子邮件的内容。在您的情况下,您发送的是html格式的电子邮件,但您的标记不完整,缺少html,并且正文标记用于包装您当前的标记。在电子邮件标记中设置字符集也是一个好主意,以确保在收件人端正确呈现字符。避免使用ISO-8859-1,如果可能,请使用UTF-8。
我建议您查看一个电子邮件库,发送这些电子邮件而不是php mail()函数。看看流行的PHPMailer库。
还有一些基于云的电子邮件服务,例如Mailgun,因为与设置您自己的电子邮件服务器相比,它们从一开始就具有良好的发件人声誉。
关于&#34;不需要的查询&#34;,您需要提供更多详细信息,以便我们为您提供帮助。