使用PHP发送的电子邮件有间歇性缺失部分

时间:2012-10-22 22:34:10

标签: html email php

我有一个测试程序,可以将用户的答案和成绩记录到日志文件中。我也通过电子邮件将这封邮件发送给测试管理员。

在大多数情况下,这个系统有效。但是strangley我注意到不同的电子邮件客户端正在删除部分代码。它是一个表,因此很多代码都是非常重复的,并且每次为每个电子邮件客户端删除的部分都是相同的(outlook和gmail是我测试过的)。例如,如果我有一部分表:

<tr><td style="background:#a66;text-align:center">This is the answer</td></tr>

然后它可能会出现:

<tr><td style="backgrouter">This is the answer</td></tr>

我无法在每个文件中找到它之间的任何相关性。有时接近尾声,有时接近开头。在某些情况下,如果测试时间过长,甚至无法完成电子邮件。

我的php输出与服务器上的日志文件完全相同的html,这总是很完美。

发生了什么事?我该如何解决?

4 个答案:

答案 0 :(得分:1)

我认为这是因为MIME电子邮件的每行限制为998个字符。

有关详细信息,请参阅以下帖子:

Reasoning behing 76 being the line length limit for MIME sections, as defined by RFC 2045?(见appleleaf的回答)

HTML safe wrapping of long lines

我的解决方案是在HTML标记之间添加“\ r \ n”,这样每行不会超过998个字符。这对我有用。

答案 1 :(得分:0)

我能想到的一件事就是在每个CSS语句中添加!important

<td style="background:#a66 !important;text-align:center !important">

哦,只是发现你错过了结束;

答案 2 :(得分:0)

这很奇怪!

好的,首先,您是否尝试过间隔和终止所有样式?例如:

<tr><td style="background-color: #aa6666; text-align: center;">

其次,虽然我无法想到发生这种情况的原因(例如,样式名称或保留的函数名称等),但Gmail可能会有一些奇怪的HTML解释。

否则,我很难过。我只见过这种情况发生在雅虎邮件中,电子邮件中的HTML打破了雅虎的邮件布局...

我很想使用css类并在样式标记内设置样式。我从没见过他们休息。

答案 3 :(得分:0)

我担心你的问题有更深层次的问题。

这些客户有一些模糊的处理数据的方式,并最终重复发送来自同一电子邮件服装的邮件来呈现它,因为它是来自其他邮件的引用。

我建议你查看邮件的html一致性,并阅读支持电子邮件的html。

还要确保您的电子邮件标题是说它是html格式的电子邮件而不是纯文本。标题中的格式化也很重要,我会命令utf8