PHP邮件功能....请检查代码....我的邮件将发送垃圾邮件,我收到这么多不需要的查询?

时间:2017-06-09 05:55:37

标签: php function email spam spam-prevention

请检查以下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;
}
}
?>

1 个答案:

答案 0 :(得分:0)

首先,由于脚本中使用的许多变量都是用户生成的,因此您应该清理输入变量以避免来自用户的恶意代码。

您的电子邮件最终会进入垃圾邮件文件夹的原因可能有很多。最重要的两个是您正在使用的电子邮件服务器(正确的配置,发件人信誉等)和电子邮件的内容。在您的情况下,您发送的是html格式的电子邮件,但您的标记不完整,缺少html,并且正文标记用于包装您当前的标记。在电子邮件标记中设置字符集也是一个好主意,以确保在收件人端正确呈现字符。避免使用ISO-8859-1,如果可能,请使用UTF-8。

我建议您查看一个电子邮件库,发送这些电子邮件而不是php mail()函数。看看流行的PHPMailer库。

还有一些基于云的电子邮件服务,例如Mailgun,因为与设置您自己的电子邮件服务器相比,它们从一开始就具有良好的发件人声誉。

关于&#34;不需要的查询&#34;,您需要提供更多详细信息,以便我们为您提供帮助。