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