7

我一直在尝试让 PEAR::mail 成功地将电子邮件发送给 hotmail 用户,而不会被标记为垃圾邮件并最终进入垃圾文件夹,我只使用 hotmail 对 yahoo/gmail 没有任何问题。

google 建议这是 hotmail 的常见问题,可能的原因可能包括

  • 服务器主 IP 的反向 DNS 不正确
  • 缺少 SenderId/SPF 记录
  • 被列入黑名单

检查了以上所有内容后,我只能想到另一个原因-标题格式不正确?

为了测试这个理论,我将 Outlook 设置为通过 PEAR::mail 使用的相同地址发送电子邮件并发送了一个快速测试 - 它直接发送到我的收件箱

所以我将 PEAR::mail 发送的电子邮件的标题与 Outlook 发送的标题进行了比较,只有一些差异 - 我只列出了差异以节省空间(和人们的眼睛)

PEAR::mail 标头(不在 Outlook 标头中)

X-PHP-Script: www.example.com/register.php for [users ip address]

Outlook 标头(不在 PEAR::mail 标头中)

X-Mailer: Microsoft Office Outlook 11
Thread-Index: Ack6CWSQlgV8s6+6SWyifka2NNpB7g==
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3350

我能看到的唯一其他区别是

  • From: 和 To: 标头的顺序颠倒了
  • 并在 Received: 标题部分

外表

Received: from myhomehostname.com ([ip address] helo=simber) 
by mywebhostname.com with local (Exim 4.67)

梨::邮件

Received: from apache by mywebhostname.com with local (Exim 4.67)

标题中的这些小差异可能是原因还是我找错了地方?我知道这可能有问题,因此为什么我选择使用 PEAR::mail 类而不是自己滚动但现在我真的不知道该去哪里,任何帮助将不胜感激。

更新:根据更改日志的建议,我尝试将 MS 标头添加到 PEAR::mail 类中,并且我尝试用 PHPMailer 替换 PEAR::mail(带有 & 没有额外的标头)-它们最终都在垃圾文件夹中。

我开始相信它可能不是标题。

更新 2:我应该提到这些电子邮件只是用于验证用户注册的电子邮件地址的注册确认 - 没有邮件截图等,因此我们的数量非常低。

我曾考虑警告提供@hotmail/live 电子邮件地址的用户将我们添加到他们的地址簿或检查他们的垃圾文件夹 - 但这对我来说似乎不专业 - 我可能不得不求助于这个。

至于获得发件人分数认证 - 考虑到这些电子邮件的数量和目的低,我不太可能证明这样做的成本是合理的。

4

4 回答 4

8

我的公司进行专业的电子邮件营销活动(通过 strongmail 服务器),我们每天向各种地址发送数千封(请求的)电子邮件。

你面临的问题是你没有权限。您可能只是试图发送大量垃圾邮件的垃圾邮件发送者。

你需要做的是:

  • 添加退订链接
  • 申请 hotmail 的垃圾邮件报告计划 (JMRP) 并确保按下“这是垃圾邮件”按钮的人不会再次收到邮件。这将提高您的“发件人分数”;@hotmail 让你的邮件打通。
  • 添加 SPF 和其他反垃圾邮件解决方案。
  • 每分钟不要向@hotmail.com 发送超过 50 封电子邮件(其他域有其他限制)

顺便说一句,我们使用 PHPMailer 来编写我们的消息,这完全没有问题 :-) 现在的问题确实是限制接收邮件服务器。

于 2008-10-30T16:39:34.503 回答
7

电子邮件可传递性更接近于一门艺术而不是一门科学。我几乎可以保证它与您的标题无关。试图欺骗标题可能是你能做的最糟糕的事情。邮件服务器在收到邮件时添加received:标头:欺骗这将导致您的电子邮件被标记为垃圾邮件:常用的垃圾邮件过滤器之一是计算中继的数量(即接收:标头)。如果有太多,你会得到更高的垃圾邮件分数。

反向 DNS 和 SPF 是最低的进入门槛。特别是对于 hotmail,在获得 SPF 和 DNS 记录后,还有其他三个非常重要的因素:

  • IP/域名声誉
  • 体积
  • 在通讯录中

声誉与被列入黑名单不同。您需要使用 hotmail 建立信任。Hotmail 使用Sender Score Certified作为他们的主要声誉经纪人——如果你愿意,你可以通过他们检查你的声誉,但这可能会花费你。

如果您使用的是共享主机或 IP 地址的过去格格不入,那么您在使用 hotmail 时不会有太多运气。

您可以通过稳定的数量和低垃圾邮件投诉来建立声誉。只要您每天都这样做,您就可以整天每小时发送 100 万条消息。如果您每天发送的消息少于 10,000 条,您可能无法建立良好的声誉。您可以在Sender Base获取有关您的交易量的报告。

最后,确保您最终进入收件箱的最佳方法是让您的用户将发送电子邮件地址添加到他们的地址簿中。Hotmail 将其用作安全发件人列表。事实上,我认为现在 Hotmail 中还有一个额外的受信任发件人选项(我已经有一段时间没有参与投递游戏并且我不使用 hotmail)。

以下是发送电子邮件的其他一些最佳做法:

  • 始终使用相同的 IP 地址
  • 始终使用相同的 FROM 地址
  • 如果您有一个要发送时事通讯的大型列表,请确保您停用旧地址(即检查开放率)
  • 如果您的列表很大,请尝试根据风险对其进行分段并从不同的 IP 地址发送(即,较新的地址可能会将邮件标记为垃圾邮件)
于 2008-10-30T16:43:21.967 回答
1

我一直在我的项目中使用PHPMailer,为了避免 Hotmail 的垃圾文件夹,我所做的就是调用一种方法,将 MS Headers 添加到消息中。

查看源代码,并自己添加这些标题。

另外,如果您要发送 HTML 电子邮件,我建议您包含文​​本版本。

于 2008-10-30T13:55:18.000 回答
0

我建议修改您发送的标题以匹配 Outlook 发送的 100% 的标题,看看是否能解决问题。确实这是一个艰难的过程,hotmail 以拥有超级糟糕的垃圾邮件过滤器而闻名,将大量合法电子邮件发送到垃圾邮件,并将大量垃圾邮件发送到您的收件箱。

于 2008-10-30T14:52:41.363 回答