Как отформатировать электронную почту, с которой Hotmail / Outlook доволен?

$body = 'This is a test'; $subject = 'Confirmation'; $headers = 'From: Testing Site' . "\r\n"; $headers .= 'Reply-To: admin@myserver.com' . "\r\n"; $headers .= 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html;charset=iso-8859-1' . "\r\n"; $headers .= 'X-Mailer: PHP/' . phpversion(). "\r\n"; $headers .= 'Delivery-Date: ' . date("r") . "\r\n"; //$headers .= 'Message-Id: <20140316055950.DA8ED58A13CE@myserver.com>' . "\r\n"; mail("example@hotmail.com", $subject, $body, $headers, "-f admin@myserver.com"); mail("example@gmail.com", $subject, $body, $headers, "-f admin@myserver.com"); 

Письма отправляются штрафом в Gmail, но они всегда отвергаются Hotmail с этой ошибкой:

host mx1.hotmail.com [65.55.33.119] said: 550 5.7.0 (COL0-MC5-F28) Сообщение не может быть доставлено. Убедитесь, что сообщение соответствует требованиям RFC 5322. (в ответ на конец команды DATA).

Заголовок идентификатора сообщения генерируется автоматически сервером, но он также не помогает поставлять его вручную.

Почему Hotmail не счастлив?

Почтовый сервер имеет запись SPF, обратный DNS, не занесен в черный список и передает все проверки на mxtoolbox.com.

Недопустимый заголовок From . Он должен иметь следующий синтаксис:

 From: "name" <email-address> 

В твоем случае:

 From: "Testing Site" <admin@myserver.com> 

То же самое касается заголовка Reply-To :

 Reply-To: "Testing Site" <admin@myserver.com> 

Что вы можете опустить, если это то же самое, что и заголовок From (как в вашем случае).

PS: RFC 2822 не указывает, что отображаемое имя в адресе должно быть указано. Другими словами: должны работать следующие 3 заголовка:

 From: "Testing Site" <admin@myserver.com> From: 'Testing Site' <admin@myserver.com> From: Testing Site <admin@myserver.com> 

Если вы используете WordPress, вы можете найти плагин для поддержки электронной почты Hotmail / Outlook.

Однако, если это автономный скрипт, вы можете посмотреть официальный ответ Microsoft на этот запрос по URL-адресу: http://answers.microsoft.com/en-us/outlook_com/forum/oemail-osend/why-are-the- электронные письма посланного к Microsoft-аккаунт / b64e3e4a-0d93-40c8-8e28-4be849012f9c

Короткий поставщик Email-сервера должен заполнить эту форму (один раз): https://support.live.com/eform.aspx?productKey=edfsmsbl3&ct=eformts&wa=wsignin1.0&scrx=1

Чтобы получить их сообщения, принятые Hotmail / Outlook.

Использование библиотеки PHPMailer для отправки почты вместо функции mail () наконец-то разобрало эту проблему и является рабочим решением для меня. Answer by Jasper N. Brouwer, вероятно, более правильно ответил на вопрос, хотя у меня не было возможности попробовать его.

1) Перейти к Мастер записи SPF

2) создать новую запись SPF для вашего домена DNS
3) Добавьте эту запись DNS в DNS вашего домена
4) если вы терпите неудачу в этом процессе, прочитайте подробную спецификацию записи SPF

После завершения этого процесса HOTMAIL будет рад вашей электронной почте.