我知道。我听起来像垃圾邮件发送者,但这些电子邮件对于在我们开发的这个网站上注册帐户的人来说是完全合法的电子邮件确认。这些电子邮件都会发送到各个邮件提供商(gmail、yahoo、aol、hotmail/live),但它们总是被定向到 Outlook 垃圾邮件文件夹。我尝试过使用 Zend Framework 邮件、PEAR Mail 和 phpMailer。所有这些方法都会导致同样的事情发生。
这种情况似乎是在 Microsoft 今年 1 月发布 Outlook 垃圾邮件过滤器更新后开始发生的。
以下是有问题的代码:
include_once('Mail.php');
include_once('Mail/mime.php');
$hdrs = array(
'From' => "Membership <[email protected]>",
'Subject' => 'Test Email',
'Reply-To'=> "[email protected]",
'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'=> '[email protected]'
);
$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('[email protected]', $hdrs, $body);
正如您所看到的,我们在此测试中使用 PEAR Mail 功能。这是我们可以运行的最基本的测试,上面生成的电子邮件被转储到 Outlook 垃圾邮件文件夹中。我们的邮件服务器上有反向 DNS,它与正向 DNS 匹配,并且已设置 SPF 和 DKIM,并且上述内容不存在任何“垃圾邮件”。任何人都可以看到上述代码中可能导致 Outlook 将其标记为垃圾邮件的内容吗?谢谢!