我的邮件服务器已经配置了SPF、DKIM和反向DNS,并且运行良好。我可以使用类似以下方式发送邮件到Outlook.com:
echo "This is only a test" | mail username@outlook.com
当我尝试使用同一服务器通过PHP发送电子邮件时,出现了问题:
$header .= "Return-Path: Some User <mailsender@mydomain.com>\r\n";
$header .= "From: Some User <mailsender@mydomain.com>\r\n";
$header .= "Content-Type: text/plain; charset=iso-8859-1\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "User-Agent: Some User Mail Sender\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n";
mail("usernama@outlook.com","My title", "Message body", $header);
我试图使用appmaildev.com验证我的邮件,但是报告显示:
DKIM result: fail (wrong body hash: <*** body hash ***>)
即使出现这个错误,Outlook.com 仍然称通过了 DKIM 验证,但是使用 PHP mail 函数发送的所有邮件都会进入垃圾邮件文件夹。以下是直接通过 Bash 和通过 PHP 发送的邮件示例:http://pastebin.com/ndXJszic
有人能帮我吗?谢谢。 编辑:从邮件头中删除 \r 后,DKIM 正文哈希错误已消失。但我仍然无法向 Outlook 发送电子邮件...