每次我的邮件都在phpmailer中发送垃圾邮件

时间:2012-04-03 06:43:21

标签: php email phpmailer email-spam

以下是我发送邮件的代码:

    $fullname = $_POST['fullname'];
    $email = $_POST['email'];
    $telephone = $_POST['telephone'];
    $email = $_POST['email'];
    $date = $_POST['date'];
    $time = $_POST['time'];
    $adult = $_POST['adult'];
    $children = $_POST['children'];
    $company_name = $_POST['company_name'];
    $addition = $_POST['addition'];
    $confirm = $_POST['confirm'];

    $body = '
    <table width="100%" border="0" cellpadding="0">
      <tr>
        <td>Dear Sir,
        </td>
      </tr>
      <tr>
        <td><b>Booking request from '.$fullname .'</b><br /><br />
          <u>The details provided are:</u><br />
          <p>Name : '.$fullname.'<br />
          E-mail Address: '.$email.'<br />
          Telephone: '.$telephone.'<br />
          Date: '.$date.'<br />
          Time: '.$time.'<br />
          Adult: '.$adult.'<br />
          Children: '.$children.'<br />
          Company Name: '.$company_name.'<br />
           Confirm by: '.$confirm .'<br />
         Additional Requirements: '.$addition.'<br />
          </p>
           </td>
      </tr>
      <tr>
        <td>
        <p>Thank you,<br />
        Kaavya Cuisine
        </p></td>
      </tr>
    </table>
    ';

    $to         = 'sujal@longtail.info';
    $subject    = 'Booking Request';
    $sitename='Website Name';

    $mail = new PHPMailer(); 
    $mail->AddReplyTo($to,$sitename);
    $mail->SetFrom($email,$fullname);


    $mail->AddAddress($to, $sitename);
    $mail->Subject    = $subject;

    $mail->MsgHTML($body);
    $mail->Send();

每次发送邮件时,都会收到垃圾邮件。有谁知道为什么会这样?

4 个答案:

答案 0 :(得分:13)

根据您的代码,我发现您直接从您网域上的网页发送电子邮件。

例如,您使用了@ hotmail.com地址。

当收件人收到电子邮件时,收件人的邮件服务可能会测试邮件发件人的反向DNS。所以发件人来自@hotmail.com,但邮件来自您的域名,当然不是 hotmail.com

因此,我收到来自地址@hotmail.com的邮件,但IP发件人与域 hotmail.com 完全无关:那是垃圾邮件!

http://en.wikipedia.org/wiki/Reverse_DNS_lookup

我认为一个可能的解决方案是:在你的PHP代码中使用SMTP验证,并从那里发送邮件!

答案 1 :(得分:6)

通常情况下,如果电子邮件的“发件人:”标头值的域部分与实际发送电子邮件的域不匹配,则会将其标记为垃圾邮件。

绕过此问题的最简单方法是使用与您的域匹配的“发件人:”,并使用“回复:”标题添加到您在“发件人:”标题中设置的电子邮件

例如:如果您从 mydomain.com 发送邮件,而您的电子邮件是 me@hotmail.com ,则应将标题更改为:

  

来自:me@mydomain.com

     

回复:me@hotmail.com

答案 2 :(得分:0)

如果这是您的完整代码,那么您必须编写PHPMailer的路径。

实施例 -

require '/...../PHPMailer-master/class.phpmailer.php';

require '/....../PHPMailer-master/PHPMailerAutoload.php';

require '/......./PHPMailer-master/class.smtp.php';   

以上内容对您有帮助。

答案 3 :(得分:0)

Google或Outlook的

垃圾邮件过滤器或您使用的任何垃圾邮件过滤器都会自动执行此操作。我相信无法以编程方式使邮件进入收件箱。通常发生这种情况是因为发送服务器已被某人标记为垃圾邮件。我找到的方式是转到gmail帐户,在gmail中将该项目标记为“重要”,在Outlook中将该项目标记为“添加到安全发件人”。