【问题标题】:My phpmailer script goes to spam我的 phpmailer 脚本进入垃圾邮件
【发布时间】:2013-08-02 01:40:45
【问题描述】:

我知道已经有人问过这个问题,但没有答案可以帮助我。

这是我的代码,希望你能找到错误。

   <?php
    require("phpMailer/class.phpmailer.php");
    require("phpMailer/class.smtp.php");

    $mail = new PHPMailer();

    $mail->IsSMTP();   
    $mail->SMTPAuth = true;     // turn on SMTP authentication         
    $mail->Host = 'smtp.example.com';
    $mail->Port = 587;  
    $mail->Username = "mailer@example.com";  // SMTP username
    $mail->Password = "validpassword"; // SMTP password

    $mail->From = "mailer@example.com";
    $mail->FromName = "Mailer";
    $mail->AddAddress("my.email@gmail.com");
    $mail->AddReplyTo("mailer@example.com", "Mailer");

    $mail->WordWrap = 50;                                 // set word wrap to 50 characters

    $mail->IsHTML(true);                                  // set email format to HTML

    $mail->Subject = "Here is the subject";
    $mail->Body    = "This is the HTML message body <b>in bold!</b>";
    $mail->AltBody = "This is the body in plain text for non-HTML mail clients";

    if(!$mail->Send())
    {
       echo "Message could not be sent. <p>";
       echo "Mailer Error: " . $mail->ErrorInfo;
       exit;
    }

    echo "Message has been sent";
    ?>

PS : 有趣的事实是我的邮件不会通过 mailer() 进入垃圾邮件...但我必须使用 Phpmailer。

【问题讨论】:

  • 当您使用mail()PHPMailer 时,您在标题中看到了什么不同?
  • 如果它位于垃圾邮件文件夹中,您的电子邮件中可能会有一个额外的标题来解释垃圾邮件分数和阈值。 (spamfighter 和 spamassassin 做这个 afaik)
  • 发送到垃圾邮件的地址是否完全相同?
  • @Bamar $headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n"; $headers .= 'Content-Transfer-Encoding: 8bit"'."\n"; $headers .= "Date:" . $entetedate . "\n"; @Anigel 我不明白你的问题对不起,也许我的英语没有我想象的那么好。
  • 您说它会通过 phpmailer 进入垃圾邮件,但如果您使用邮件则不会。您是否使用这两种方法向同一个电子邮件地址发送相同的电子邮件?

标签: php email smtp phpmailer spam


【解决方案1】:
   //servidor smtp
   $mail->Mailer = "smtp";
   //Muy importante para que llegue a hotmail y otros 
   $mail->Helo = "localhost";
   //Asignamos a Host el nombre de nuestro servidor smtp
   $mail->Host = "localhost";
   $mail->Port = 25;

【讨论】:

    【解决方案2】:

    要查看您发送这些邮件所通过的邮件服务器是否存在会导致其他邮件服务器认为它是垃圾邮件发送者的明显问题,请尝试从您的脚本向 check-auth@verifier.port25.com 发送消息。该服务将进行大量检查,您将收到包含大量信息的报告,例如天气或邮件服务器的 DNS 设置是否正确,您的邮件服务器的 IP 是否在任何黑名单上,如果您有问题与您的 SPF 记录等。

    【讨论】:

      【解决方案3】:

      您的邮件将成为垃圾邮件,因此您的邮件正在发送,因此您的脚本(可能)没有任何问题。邮件被投递到垃圾邮件的原因有很多。最明显的是,它可能垃圾邮件。您应该检查邮件配置的配置,特别是检查正确的 SPF 和 DKIM 记录。如果您使用的是第三方邮寄服务,请检查他们自己是否被列入黑名单。检查您的退货地址是否合理且有效。从标头跟踪路径并查看在途中添加任何警告的位置。最后,检查您自己的垃圾邮件过滤器。

      【讨论】:

      • 为什么这些都取决于他使用的邮件 API?
      • 好的,我检查一下那些 SPF 和 DKIM 记录,如果我有新记录,我会告诉你。
      • @Barmar 发布的代码使用 PHPMailer,特别是使用 SMTP。如果它登录到第 3 方服务,则邮件将遵循与 PHP mail() 函数使用的路径不同的路径,该函数将在主机服务器上使用 sendmail。不同的路径可以使 SPF 记录无效,或通过黑名单服务器发送邮件。
      猜你喜欢
      • 2013-05-19
      • 2014-07-23
      • 2011-08-22
      • 1970-01-01
      • 2013-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-20
      相关资源
      最近更新 更多