我知道。我听起来像垃圾邮件发送者,但这些电子邮件是完全合法的电子邮件确认邮件,用于确认在我们开发的这个网站上注册了帐户的人。这些电子邮件都通过了各种邮件提供商(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 <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 将其标记为垃圾邮件的内容吗?谢谢!
最佳答案
您的递送率与您的软件关系不大,而与您的域和 IP 在收件人的邮件主机中的声誉有很大关系。拥有 SPF 和 DKIM 肯定会有所帮助(并且会随着时间的推移帮助建立声誉),但是如果从您的域/IP 发送的电子邮件确实或确实被垃圾分类为用户(或者您做了其他对提供商来说似乎可疑的事情)例如每单位时间向他们的域发送太多电子邮件),无论您付出多少努力都无法克服这一点。
根据我的经验,这些因素更有可能触发垃圾邮件指定,而不是关于您的电子邮件标题或正文的深奥内容。现在,如果您的电子邮件中有某些流行的关键字,那就是另一回事了:-)
大多数主要供应商都提供条件各不相同的白名单计划。您可以通过 Google 了解它们。
关于php - Outlook 将电子邮件标记为垃圾邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2642211/