我知道。我听起来像垃圾邮件发送者,但这些电子邮件对于在我们开发的网站上注册帐户的人来说是完全合法的电子邮件确认。这些电子邮件都通过各种邮件提供商(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将其标记为垃圾?谢谢!
答案 0 :(得分:4)
您的投放率与您的软件关系不大,而且与您的域名和IP与收件人邮件主机的信誉有很大关系。实施SPF和DKIM肯定有助于解决问题(并将有助于建立长期声誉),但是如果从您的域/ IP发送的电子邮件确实或者确实被垃圾分类为用户(或者您做其他似乎对提供商有害的事情)比如每单位时间向他们的域发送太多电子邮件),您的努力无法克服这一点。
根据我的经验,这些因素更有可能引发垃圾邮件指定,而不是对您的电子邮件标题或正文的深奥。现在,如果您的电子邮件中有某些热门关键字,则另一个问题是: - )
大多数主要提供商都提供不同条件的白名单程序。您可以通过Google了解它们。