我有一个测试程序,可以将用户的答案和成绩记录到日志文件中。我也通过电子邮件将这封邮件发送给测试管理员。
在大多数情况下,这个系统有效。但是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,这总是很完美。
发生了什么事?我该如何解决?
答案 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