У меня есть почтовый сервер, хорошо работающий с настройками SPF, DKIM и обратным DNS. Я могу отправить электронную почту на Outlook.com, используя что-то вроде:
echo "This is only a test" | mail [email protected]
Проблема возникает, когда я пытаюсь отправить электронную почту через PHP с использованием того же сервера:
$header .= "Return-Path: Some User <[email protected]>\r\n";
$header .= "From: Some User <[email protected]>\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("[email protected]","My title", "Message body", $header);
Я попытался проверить свое сообщение с помощью appmaildev.com, и в отчете говорится:
DKIM result: fail (wrong body hash: <*** body hash ***>)
Даже с этой ошибкой Outlook.com говорит, что он прошел проверку DKIM, но все сообщения, отправленные почтовой программой PHP, отправляются в папку нежелательной почты. Вот примеры сообщений, отправленных непосредственно через Bash и через PHP: http://pastebin.com/ndXJszic
Кто-нибудь может мне помочь?
Спасибо.
ИЗМЕНИТЬ После удаления \r из заголовков ошибка хеша тела DKIM исчезла. Но я по-прежнему не могу отправлять электронные письма в Outlook...