编程语言
首页 > 编程语言> > php – 为什么我不能向Hotmail发送电子邮件?

php – 为什么我不能向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记录的域名.你可以制作一个here

编辑:

截至2015年6月,共同要求是:

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

2)使用-all代替~all的SPF记录

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

4)通常的事情,a)像发送IP上的反向IP查找,b)对该rDNS值的正向查找,优选地指向相同的IP,c)主机名上的MX记录.

例:

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

其中1.2.3.4是您的服务器的IP.

标签:php,email,hotmail
来源: https://codeday.me/bug/20190723/1515384.html