繁体   English   中英

为什么我不能向 Hotmail 发送 email?

[英]Why can't I send an email to Hotmail?

这是我的代码:

$boundary = sha1('whatever');

$headers = 'MIME-Version: 1.0'."\r\n";
$headers .= 'From: "Domainname" emailname@domain.com'."\r\n";
$headers .= 'Reply-to: Domainname <emailname@domain.com>'."\r\n";
$headers .= 'X-Priority: 3'."\r\n";
$headers .= 'X-Mailer: Mail 1.0'."\r\n";
$headers .= 'Subject: '.$subject."\r\n"; 
$headers .= 'Content-Type: multipart/alternative; boundary="'.$boundary.'"'."\r\n\r\n";

$message = '--'.$boundary."\r\n";
$message .= 'Content-Type: text/plain; charset="utf-8"'."\r\n\r\n";
$message .= $text."\r\n";
$message .= '--'.$boundary."\r\n";
$message .= 'Content-Type: text/html; charset="utf-8"'."\r\n\r\n";
$message .= $html."\r\n";
$message .= '--'.$boundary.'--';

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

它适用于 Gmail、Yahoo、GMX……但它不适用于 Hotmail/Live/MSN。

因为它适用于 Gmail,我可以假设它与我的服务器无关,对吧?

我也试过了:

mail('username@hotmail.com', 'This is a subject', 'This is the body');

同样的问题。 它甚至没有发送到我的垃圾文件夹。

老答案:

Hotmail 会阻止没有 SPF 记录的域。 你可以在这里做一个

编辑:

截至 2015 年 6 月,常见要求是:

1) DKIM 在 Exim 中启用 DKIM 现在是一个非常重要的工具,可以减少您的电子邮件被标记为垃圾邮件的机会。 强烈建议为您的域启用 DKIM。

2) SPF 记录使用 -all 而不是 ~all

3) DMARC 记录帮助远程服务器决定如何处理失败的 DKIM/SPF 消息。

4)通常的事情,a)像在发送 IP 时反向 IP 查找,b)对该 rDNS 值的正向查找,最好指向相同的 IP 主机名记录)

例子:

"v=spf1 a mx ip4:1.2.3.4 -all"

其中 1.2.3.4 是服务器的 ip。

Microsoft 依靠各种身份验证筛选器来确定 email 是否为垃圾邮件。

常见的行业惯例包括查看 email 是否存在 SPF 验证、发件人 ID 和收到的 email 中的 DKIM 记录。

发件人 ID 框架是一种电子邮件身份验证技术协议,它通过验证发送电子邮件的域名来帮助解决欺骗和网络钓鱼问题。

SPF(发件人策略框架)本质上是一个额外的 DNS 记录,它直接指定远程邮件服务器应该从哪里接收邮件。

DKIM(DomainKey Identified Mail)是较旧的 DomainKeys 系统的新实现,它本质上是一种更复杂的 SPF/邮件验证方法,需要使用私钥对邮件进行签名,并与 DNS 记录中的公钥进行核对. 这本质上是一个更安全的 SPF 版本。

You can send an email from a test@domain.com to check-auth@verifier.port25.com when sent, an email will return stating the verification of DKIM, DomainKeys, SPF, SpamAssassin, and Sender-ID.

然而,最近几个月,我发现尽管在发送的电子邮件中包含了这些元素,微软仍然在抛弃合法的电子邮件。 微软推荐使用Sender Path的服务,这是一种付费服务认证服务。

但是我发现,一旦收件人将我们的 email 地址列为已保存的联系人,他们就会很好地收到我们的电子邮件。 因此,我为我们公司创建了一个 vCard,并敦促我们的客户使用 Hotmail 或 Windows Live email 服务将 vCard 保存为联系人,以确保我们的电子邮件正确发送。

所有 ISP 和邮件服务器都有不同的垃圾邮件检测方法和黑名单。 您应该使用代表您处理交付能力问题的第三方,例如SendGrid 通过 SendGrid 发送 email 与您在问题中的操作方式一样简单。 看看这个例子 此外,它们的定价也相当公道,而且还提供免费套餐。

如果您使用的是 ec2,则应查看 Amazon SES(简单 Email 服务)。 这是常见问题解答

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM