在php mail()上从电子邮件中删除的内容

时间:2016-04-29 12:19:52

标签: php email

我有一封我想发送的电子邮件(整个电子邮件都在标题中)。实际上,电子邮件正在发送。但是当它到达目的地时,内容已被删除。如果我发送完全相同的电子邮件,由不同服务器的相同代码构建,那么一切都很好。

当我使用nl2br(htmlspecialchars($headers, ENT_QUOTES))打印出来时,这就是我得到的:

From: kittsil@example.com
Reply-to: kittsil@example.com
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 个答案:

答案 0 :(得分:1)

您的邮件正文中缺少空白行。

引用from the RFC

  

每个部分以封装边界开始,然后包含由标题区域,空行和正文区域组成的正文部分。

(强调我的)

添加适当的空白行并且有效:

部首:

From: kittsil@example.com
Reply-to: kittsil@example.com
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--