Hotmail拒绝php发送的电子邮件

3

我的网站使用php mail()函数向新成员发送激活邮件。我使用谷歌邮件服务(aspmx.googlemail.com)管理我的电子邮件帐户。但不幸的是,Hotmail用户会将激活邮件放在他们的垃圾邮件文件夹中。

我进行了一些研究,发现了SPF记录(由于我对Web服务器的控制有限,因此无法使用密钥)。那么我该如何配置我的SPF记录呢?

现在我有:

v=spf1 a mx a:mywebsite.net include:aspmx.googlemail.com ~all

这是我需要的吗?

编辑: 我现在使用PHPMailer连接到Google SMTP服务器。这样,Hotmail不再将其标记为不需要的邮件。(http://sourceforge.net/projects/phpmailer/


2
历史上,Hotmail 因将任何东西都发送到垃圾邮件而臭名昭著。如果你能避开这一点,他们可能会因为垃圾邮件罪名起诉你。 - glasnt
我使用 Pear Mail,在这种情况下也可以工作。 - Matt Ellen
2个回答

3
PHP的mail()可能不使用smtp来发送您的电子邮件。建议添加适当的标头并使用垃圾邮件得分器来提高成功率,或者您可以尝试通过谷歌的邮件服务器使用smtp(尽管这可能不太可能)。
以下是一个垃圾邮件得分器: http://www.contactology.com/check_mqs.php 以下是一些电子邮件标头的示例,请务必将您的发件人标头设置为默认值,因为它可能对垃圾邮件过滤器不利:
$headers  = "From: My site<noreply@my_site.com>\r\n";
$headers .= "Reply-To: info@my_site.com\r\n";
$headers .= "Return-Path: info@my_site.com\r\n";
$headers .= "X-Mailer: Drupal\n";
$headers .= 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

mail($recipient, $subject, $message, $headers);

如果我在From头中放置它,它会发送两次。 - Jens
垃圾邮件评分器给了我0.3分。但你发给我的那个并没有起作用。 - Jens

3
为了利用SPF记录,您需要将其添加到DNS区域文件中。
前往您注册DNS的地方并添加几个TXT记录。
它们应该看起来像:
mywebsite.net. IN TXT "v=spf1 a mx a:mywebsite.net include:aspmx.googlemail.com ~all " mailserver.mywebsite.net. IN TXT "v=spf1 a mx a:mywebsite.net include:aspmx.googlemail.com ~all "
http://www.openspf.org/上有大量有关此问题的信息。
这并不能保证您的邮件会通过垃圾邮件过滤器,但它会有所帮助。
另一件要做的事情是与Hotmail团队进行“白名单”处理。虽然已经有一段时间了,但基本上您需要向联系人注册您的机器。这使得他们可以直接投诉您网站上的可疑材料。在您被“白名单”之后,他们倾向于让更多的邮件通过。

我知道在哪里添加SPF TXT记录。我只是想知道我是否在我的情况下使用了正确的语法。 - Jens

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接