Outlook显示电子邮件html,好像它是纯文本,太多换行符

时间:2014-07-29 09:57:23

标签: php html email outlook html-email

我可以在php中生成电子邮件并发送它们,以便它们在Gmail和Apple邮件以及其他客户端中正确显示为html。 我也没有从垃圾邮件刺客那里得到任何格式错误。

然而,在Mac OS X上使用Outlook 14的一个接收器接收电子邮件,就像html部分是纯文本一样。如果我在他的托管帐户上禁用垃圾邮件刺客,也会发生同样的事情。以下是用户收到此类电子邮件的来源(已编辑以删除域名和电子邮件地址并缩短邮件正文):

Return-path: <_www@[domain].com>
Envelope-to: info@[domain].com
Delivery-date: Tue, 29 Jul 2014 01:39:03 -0700
Received: from [domain].com ([212.85.69.251]:50283)
by biz61.inmotionhosting.com with esmtp (Exim 4.82)
(envelope-from <_www@[domain].com>)
id 1XC2w3-0003s4-C7
for info@[domain].com; Tue, 29 Jul 2014 01:39:03 -0700
Received: by [domain].com (Postfix, from userid 70)
id 693E248D80BC; Tue, 29 Jul 2014 10:39:02 +0200 (CEST)
To: info@[domain].com
Subject: test2 - ignore - Link
From: Action Sports <noreply@[domain].com>
Reply-to: [my-email]@[domain].com
Cc: [my-email]@[domain].com
Sender: info@[domain].com
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary=c4d5d00c4725d9ed0b3c8b
Message-Id: <20140729083902.693E248D80BC@[domain].com>
Date: Tue, 29 Jul 2014 10:39:02 +0200 (CEST)

--c4d5d00c4725d9ed0b3c8b

Content-type: text/plain; charset=utf-8


testing - ignore





--c4d5d00c4725d9ed0b3c8b

Content-type: text/html; charset=utf-8



<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style TYPE="text/css">
<!--
table{
border-collapse:collapse;
border:1px solid #888;
}

table td, table th{
border:1px solid #888;
padding:3px;
}
-->
</style></head>
<body>

testing - ignore 
<br>



</body>
</html>



--c4d5d00c4725d9ed0b3c8b--

以下是Outlook在新窗口中正常打开时显示为人类可读内容的内容:

[ at the top is the normal outlook header, followed by the following blank line: ]

Content-type: text/html; charset=utf-8



<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style TYPE="text/css">
<!--
table{
border-collapse:collapse;
border:1px solid #888;
}

table td, table th{
border:1px solid #888;
padding:3px;
}
-->
</style></head>
<body>

testing - ignore
<br>


</body>
</html>



[the message ends with about 4 empty lines]

如果我将同一封电子邮件发送到我的Gmail帐户,则看起来不错,如果我查看来源,则会有较少的空行。

我现在相信额外的空行会导致Outlook误解最后一部分应该显示为HTML。造成额外空行的原因是什么?

我应该在标题中使用\r\n换行符,但邮件正文中有\n换行符吗?

2 个答案:

答案 0 :(得分:1)

经过测试后发现,如果我使用\r\n,即根据RFC使用标准换行符,对于标头如前所述,但改为仅使用\n,即非消息体的标准换行符,包括多部分/备用边界以及它在Googlemail和其他一些测试过的客户端中运行的多部分内容类型行,甚至在Outlook 14 for OS X中也是如此。

答案 1 :(得分:0)

根据protocolCRLF用作行终止。

现在,我可以发誓折叠也是一项要求,但是从RFC 822 spec开始,我没有得到具体的要求,但确实提到了

  

&#34;长&#34;通常被解释为大于65或72   字符。

并且您的第一行HTML是81个字符。

其他一切对我来说都很好。