Содержимое, удаленное из электронной почты на php mail()

У меня есть письмо, которое я пытаюсь отправить (вся электронная почта находится в заголовках). Фактически, электронная почта отправляется. Но когда он добирается до места назначения, контент удаляется. Если я отправлю то же электронное письмо, построенное по тому же коду с другого сервера, все отлично работает.

Когда я печатаю его с помощью nl2br(htmlspecialchars($headers, ENT_QUOTES)), это то, что я получаю:

From: [email protected]
Reply-to: [email protected]
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="cccf6094979eaede770a2a2e88fc83e9"
Content-Transfer-Encoding: 7bit
This is a MIME encoded message.
--cccf6094979eaede770a2a2e88fc83e9
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
You are not being awesome....
--cccf6094979eaede770a2a2e88fc83e9--

Когда сообщение отправлено, тело пуст, и когда я смотрю на него в Gmail "показать оригинал", он выглядит одинаково, но содержимого там нет.

Я использую postfix и OpenDKIM, но я отключил их, и даже переключился обратно на sendmail, и ни у одного из этих писем нет тел. Я разорвал свои волосы об этом.

Ответ 1

Вам не хватает пустых строк в вашем теле письма.

Цитировать из RFC:

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

(Подчеркните мой)

Добавьте правильные пустые строки, и он работает:

Заголовок:

From: [email protected]
Reply-to: [email protected]
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="cccf6094979eaede770a2a2e88fc83e9"
Content-Transfer-Encoding: 7bit

Тело

This is a MIME encoded message.

--cccf6094979eaede770a2a2e88fc83e9
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit

You are not being awesome....
--cccf6094979eaede770a2a2e88fc83e9--