Php Outlook将电子邮件标记为垃圾邮件

Php Outlook将电子邮件标记为垃圾邮件,php,outlook,Php,Outlook,我知道。我听起来像一个垃圾邮件发送者,但这些电子邮件是完全合法的电子邮件确认的人已经注册了一个帐户在这个网站上,我们开发的。这些电子邮件都可以通过各种邮件提供商(gmail、yahoo、aol、hotmail/live)发送,但它们总是直接发送到Outlook垃圾邮件文件夹中。我尝试过使用Zend框架邮件、PEAR邮件和phpMailer。所有这些方法都会导致同样的事情发生 这似乎是在微软于今年1月发布了他们对Outlook垃圾邮件过滤器的更新后开始的 有关守则如下: include_once(

我知道。我听起来像一个垃圾邮件发送者,但这些电子邮件是完全合法的电子邮件确认的人已经注册了一个帐户在这个网站上,我们开发的。这些电子邮件都可以通过各种邮件提供商(gmail、yahoo、aol、hotmail/live)发送,但它们总是直接发送到Outlook垃圾邮件文件夹中。我尝试过使用Zend框架邮件、PEAR邮件和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);
include_once('Mail.php');
包括_once('Mail/mime.php');
$hdrs=阵列(
'来自'=>“成员资格”,
“主题”=>“测试电子邮件”,
'回复'=>“membership@example.com",
“消息ID”=>“”,
'Date'=>Date(“D,j M Y H:i:so”,time()),
'到'=>'test@example.com'
);
$params=array('host'=>'mail.example.com','auth'=>false,'localhost'=>'www.example.com','debug'=>false);
$crlf=“\n”;
$mime=新邮件\u mime($crlf);
$mime->setTXTBody(“测试”);
$mime->setHTMLBody(“\n\nTest\n\n”);
$body=$mime->get();
$hdrs=$mime->headers($hdrs);
$mail=&mail::工厂('smtp',$params);
$t=$mail->send($t)test@example.com“,$hdrs,$body);

正如您所看到的,我们在这个测试中使用了PEAR邮件功能。这是我们可以运行的最基本的测试,上面生成的电子邮件会被转储到Outlook垃圾邮件文件夹中。我们在邮件服务器上有反向DNS,它与正向DNS相匹配,SPF和DKIM都已设置,并且上述内容没有“垃圾邮件”。有人能看到上面的代码会导致Outlook将其标记为垃圾吗?谢谢

您的投递率与您的软件关系不大,而与您的域和IP在收件人的邮件主机上的声誉关系很大。有了SPF和DKIM肯定会有所帮助(并有助于随着时间的推移建立声誉),但如果从您的域/IP发送的电子邮件确实被垃圾邮件归类为用户(或者您做了提供商认为可疑的其他事情,比如每单位时间向其域发送太多电子邮件),无论你付出多少努力都无法克服这一点

根据我的经验,这些因素比你的邮件标题或邮件正文更容易引发垃圾邮件。现在,如果你的电子邮件中有某些流行的关键字,那就另当别论了:-)


大多数主要提供商都提供不同条件的白名单程序。你可以通过谷歌找到它们。

它会被其他垃圾邮件过滤器过滤吗?(Gmail、Thunderbird等)我没有检查Thunderbird,但没有一家基于web的提供商(Gmail、hotmail、yahoo)将其标记为垃圾邮件。作为发送web服务器的同一网络上的Outlook真的会关注SPF和我们的“发件人声誉”吗?我不认为Outlook做过任何网络测试来确定SPF记录的有效性等。这封电子邮件通过网络电子邮件提供商、Gmail、Hotmail、Yahoo等。我不知道Microsoft发布了Outlook过滤器使用的确切标准(如果有人知道在哪里可以找到这些信息,请发布:-)但我知道从Hotmail获得的信息是一个因素。他们还可以利用来自DNS黑名单和DNS白名单的数据。我已经看到,在IP通过发送缓慢、稳定的合法电子邮件数周“预热”后,Outlook过滤器的可交付性有所提高。由于我不知道微软的确切算法,我不知道这是否是偶然的。我在用Outlook打开/下载电子邮件时一直在观察工作站上的网络流量,还没有看到任何网络测试,所以我假设Outlook是根据邮件头和邮件正文中的内容进行判断的(可能是错误的)。谁知道呢。感谢您的见解。@robertabead:您可能是对的,没有实时网络测试(否则频繁更新将是不必要的)。我怀疑他们有一个聪明的方法来打包从各种在线来源收集的信息,并在每台电脑上静态可用。你可以通过将Outlook安装到新的虚拟机中,不应用更新,然后测试你的电子邮件是否通过,来测试这一理论。对除邮件服务器之外的所有internet访问设置防火墙。