【发布时间】:2011-02-08 04:34:44
【问题描述】:
我知道。我听起来像个垃圾邮件发送者,但对于在我们开发的这个网站上注册帐户的人来说,这些电子邮件是完全合法的电子邮件确认。这些电子邮件都通过各种邮件提供商(gmail、yahoo、aol、hotmail/live)发送,但它们总是被定向到 Outlook 垃圾邮件文件夹。我尝试过使用 Zend Framework 邮件、PEAR Mail 和 phpMailer。所有这些方法都会导致同样的事情发生。
这似乎是在微软于今年 1 月发布 Outlook 垃圾邮件过滤器更新后开始发生的。
以下是有问题的代码:
include_once('Mail.php');
include_once('Mail/mime.php');
$hdrs = array(
'From' => "Membership <membership@example.com>",
'Subject' => 'Test Email',
'Reply-To'=> "membership@example.com",
'Message-ID'=> "<" . str_pad(rand(0,12345678),8,'0',STR_PAD_LEFT) . "@mail.example.com>",
'Date'=> date("D, j M Y H:i:s O",time()),
'To'=> 'test@example.com'
);
$params = array('host'=>'mail.example.com','auth'=>false,'localhost' => 'www.example.com','debug'=>false);
$crlf = "\n";
$mime = new Mail_mime($crlf);
$mime->setTXTBody("TEST");
$mime->setHTMLBody("<html>\n<body>\nTest\n</body>\n</html>");
$body = $mime->get();
$hdrs = $mime->headers($hdrs);
$mail =& Mail::factory('smtp',$params);
$t=$mail->send('test@example.com', $hdrs, $body);
如您所见,我们在此测试中使用了 PEAR Mail 功能。这是我们可以运行的最基本的测试,上面生成的电子邮件被转储到 Outlook 垃圾邮件文件夹中。我们在邮件服务器上有反向 DNS,它与正向 DNS 相匹配,设置了 SPF 和 DKIM,上面的内容没有任何“垃圾邮件”。任何人都可以使用上述代码看到可能导致 Outlook 将其标记为垃圾的内容吗?谢谢!
【问题讨论】:
-
它是否被任何其他垃圾邮件过滤器过滤? (Gmail、Thunderbird 等)
-
我没有检查过 Thunderbird,但没有一个基于 Web 的提供商(gmail、hotmail、yahoo)将其标记为垃圾邮件。