2

我有一个测试程序,可以将用户的答案和评分记录到日志文件中。我还将它以格式精美的 html 电子邮件通过电子邮件发送给测试管理员。

在大多数情况下,这个系统是有效的。但是我注意到不同的电子邮件客户端正在删除部分代码。这是一个表格,所以很多代码非常重复,每个电子邮件客户端每次删除的部分都是相同的(我测试过的都是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

4 回答 4

1

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

有关更多详细信息,您可以查看以下帖子:

按照 RFC 2045 的定义,推理 76 是 MIME 部分的行长度限制?(见appleleaf的回答)

长行的 HTML 安全换行

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

于 2016-11-01T07:34:05.597 回答
0

恐怕你的问题有更深层次的问题。

这些客户处理数据的方式有些晦涩难懂,最终重复地从同一个电子邮件地址发送邮件以将其渲染为来自其他邮件的引用。

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

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

于 2012-10-22T22:47:15.033 回答
0

我想尝试的一件事是!important在每个 CSS 语句中附加一个。

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

哦,刚刚注意到你错过了一个 close ;

于 2012-10-22T22:43:08.480 回答
0

这很奇怪!

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

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

其次,Gmail 可能会采用一些奇怪的 HTML 解释,尽管我想不出发生这种情况的原因(例如样式名称或保留函数名称等)。

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

我很想使用 css 类并在样式标签中设置它们的样式。我从来没有见过他们打破。

于 2012-10-22T22:44:02.227 回答