【发布时间】:2016-04-29 12:19:52
【问题描述】:
我有一封电子邮件要发送(整个电子邮件都在标题中)。实际上,电子邮件正在发送。但是当它到达目的地时,内容已被删除。如果我发送完全相同的电子邮件,由不同服务器的相同代码构建,那么一切都很好。
当我使用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--
邮件投递的时候body是空的,我在Gmail的“show original”里看的时候还是一样的,但是里面没有内容。
我正在使用 postfix 和 OpenDKIM,但我已禁用它们中的每一个,甚至切换回 sendmail,并且这些电子邮件都没有正文。我正在为此扯掉我的头发。
【问题讨论】:
-
您是否检查过您的邮件日志中的 postfix 或 sendmail?里面有什么有趣的吗?
-
您的邮件正文中缺少空白行。参见example here:“每个部分都以封装边界开始,然后包含由标题区域、空白行和正文区域组成的正文部分。”
-
@Jason 我找不到任何相关的东西;只是与 Google 邮件服务器的连接信息。
-
@GeraldSchneider 你几乎肯定是对的。但是,PHP mail() 不再允许在标题中出现空行 (stackoverflow.com/questions/30887610/…)。你有什么建议吗?
-
好吧,那你就得用好旧的内容了。