PHPmailer发送垃圾邮件

时间:2011-07-04 04:10:48

标签: php phpmailer

我刚刚更新了一个联系表单,使用PHPMailer来阻止电子邮件被标记为垃圾邮件,没有运气。

这是一个相当直接的设置我正在使用,但它仍然会进入人们的垃圾邮件。

这是我的剧本,我想知道是否有人能说出错了什么?

include_once('../inc/phpmailer/class.phpmailer.php');

$mail = new PHPMailer();

$name = $_POST['name'];
$email = $_POST['email'];
$body = "Name: ".$name."\r\n";
$body .= "Email: ".$email."\r\n";
$body .= "Message: ".$_POST['message'];

$mail->From       = "mailer@blah.com";
$mail->FromName   = "Contact BLah";

$mail->Subject    = "Contact From: Blah";

$mail->Body = $body;

$mail->AddAddress("john@blah.com", "john");
$mail->AddAddress("david@blah.com", "david");

if(!$mail->Send()) {
  $errorMsg .= "Error sending message, please try again later.";
} else {
  $errorMsg .= "Message Sent successfully.";
}

我认为PHPmailer通常需要插入正确的标题?

有什么想法吗?

编辑:添加垃圾邮件分数

-Spam-Status:“得分= 0.0测试=无版本= 3.1.7 cmae = v = 1.0 c = 1 a = 8nJEP1OIZ-IA:10     a = soyWjZv28gkhNSke5wm04A ==:17 a = fqdOs_Nl9wd82e3SDigA:9 a = l-lynuxnH-gfU2bevBoA:7     a = wPNLvfGTeEIA:10 a = nymK5Bb5l1cA:10 a = _6wjLm_vFSYA:10 xcat =未定义/未定义“ X-Spam-Level:*

编辑2:我刚刚在客户端的不同服务器上尝试了该脚本,结果相同。我是否必须通过SMTP设置发送它才能被归类为垃圾邮件?

4 个答案:

答案 0 :(得分:13)

您的邮件可能被标记为垃圾邮件的一些原因:

  1. 您正在发送垃圾邮件
  2. 您的IP或IP周围的IP块已在一个或多个黑洞列表中标记为垃圾邮件来源
  3. 电子邮件的内容正在触发垃圾邮件过滤器。
  4. 收件人已将您添加到他们的黑名单
  5. 收件人未将您添加到白名单
  6. 您正在发送混合源邮件(“来自:xyz@example.com”,但是从“someotherdomain.net”发送)
  7. 您的服务器的SPF记录配置错误/未配置
  8. 域密钥配置错误/未配置
  9. 等...

    PHPMailer是一个工具。把它当作一把锤子。锤子可能弯曲钉子,但仅仅是因为持有者没有向右瞄准。

    解决此问题的唯一方法是检查退回邮件(如果有)以及收件人邮箱中显示的内容。如果他们收到邮件,但它进入垃圾邮件文件夹,则获取邮件副本并检查其标题。大多数垃圾邮件过滤器会将垃圾邮件分数/推理放在那里。

答案 1 :(得分:7)

小提示:

添加像这样的行

 $mail->AddReplyTo( 'mailer@blah.com', 'Contact BLah' );

它应该会显着降低您的垃圾邮件评级。

答案 2 :(得分:1)

我在使用PHPMailer时遇到了同样的问题,以及解决这个问题的方法:将发件人(这与" From"不同且不同)设置为有效的电子邮件帐户对于您发送电子邮件的域名。这会导致PHPMailer正确设置"信封来自"信息,以便电子邮件通过SPF和Sender-ID验证。没有这样做,"信封来自"是OS用户ID和服务器组合,无法验证。

示例代码:

$mail = new PHPMailer;

$mail->From = 'from_email@domain.com';
$mail->Sender = 'sender_email@domain.com';
...

答案 3 :(得分:0)

不一定是PHPMailer的错,您的服务器被列入黑名单有几种可能的原因。您可以查看here以查看是否发生了这种情况