Outlook 未显示 HTML 的一部分
Outlook not displaying a portion of HTML
问题
我正在编写一个新的表单处理程序,该过程的每一步都是自动化的,我使用 CMS 管理表单上显示的字段,然后在发送给收件人时,该信息将显示在电子邮件中。
除了实际发送表单中收集的数据外,每一步都有效。这在数据是静态的之前是有效的,但现在它是动态的,信息不会出现在电子邮件中。
奇怪的是,信息实际上正在发送,但没有显示在 Outlook 中,我假设 HTML 的某些部分无法以某种方式呈现,但我已经用尽了所有我的想法,需要一些新鲜的想法。
万一有用我用的是Outlook 2016.
电子邮件在 Outlook 中是什么样子的?
我在下面提供了一张图片,请注意'联系信息'下的空白区域。
我怎么知道信息正在发送?
当我在网络浏览器中查看电子邮件时,我可以看到电子邮件中的所有信息,这就是它的样子:
HTML
<h1>{:formName:}</h1>
{:formIntro:}
<h4>Contact information:</h4>
<div class="main-content">
<table class="details" width="500" align="center" border="0" cellpadding="0" cellspacing="0">
{:formData:}
</table>
</div>
{:formMessage:}
PHP
$html = str_replace('{:formName:}', $form['name'], $html);
$html = str_replace('{:formIntro:}', $form['intro'], $html);
$html = str_replace('{:formData:}', $input_data, $html);
$html = str_replace('{:formMessage:}', $message_data, $html);
输出
<h1>Contact</h1>
Lorem ipsum...
<h4>Contact information:</h4>
<div class="main-content">
<table class="details" width="500" align="center" border="0" cellpadding="0" cellspacing="0">
<tr><td>name</td><td>Mark Overton</td></tr>
<tr><td>email</td><td>test@test.com</td></tr>
<tr><td>title</td><td>Mr</td></tr>
<tr><td>phone</td><td>777777777</td></tr>
<tr><td>message</td><td>TEst</td></tr>
</table>
</div>
我试过的
- 取出部分模板。
- 仔细检查所有生成的 HTML。
- 正在扫描 HTML 模板以查找损坏的标签。
- 删除周围的 div。
- 仔细检查所有 CSS。
- 用头撞墙
我需要你做什么?
想法,您认为可能导致此问题的任何事情。
我很乐意提供您认为可能有用的任何信息,但在现阶段我不确定那是什么,我不确定过去是否有人遇到过类似问题并且能够给我指出正确的方向。
终于解决了:
它在 Outlook 中被隐藏的原因是因为我的模板中有以下代码:
<!--[if gte mso 15]>
<style type="text/css">
table {
font-size: 1px;
line-height: 0;
mso-margin-top-alt: 1px;
mso-line-height-rule: exactly;
}
* {
mso-line-height-rule: exactly;
}
</style>
<![endif]-->
问题
我正在编写一个新的表单处理程序,该过程的每一步都是自动化的,我使用 CMS 管理表单上显示的字段,然后在发送给收件人时,该信息将显示在电子邮件中。
除了实际发送表单中收集的数据外,每一步都有效。这在数据是静态的之前是有效的,但现在它是动态的,信息不会出现在电子邮件中。
奇怪的是,信息实际上正在发送,但没有显示在 Outlook 中,我假设 HTML 的某些部分无法以某种方式呈现,但我已经用尽了所有我的想法,需要一些新鲜的想法。
万一有用我用的是Outlook 2016.
电子邮件在 Outlook 中是什么样子的?
我在下面提供了一张图片,请注意'联系信息'下的空白区域。
我怎么知道信息正在发送?
当我在网络浏览器中查看电子邮件时,我可以看到电子邮件中的所有信息,这就是它的样子:
HTML
<h1>{:formName:}</h1>
{:formIntro:}
<h4>Contact information:</h4>
<div class="main-content">
<table class="details" width="500" align="center" border="0" cellpadding="0" cellspacing="0">
{:formData:}
</table>
</div>
{:formMessage:}
PHP
$html = str_replace('{:formName:}', $form['name'], $html);
$html = str_replace('{:formIntro:}', $form['intro'], $html);
$html = str_replace('{:formData:}', $input_data, $html);
$html = str_replace('{:formMessage:}', $message_data, $html);
输出
<h1>Contact</h1>
Lorem ipsum...
<h4>Contact information:</h4>
<div class="main-content">
<table class="details" width="500" align="center" border="0" cellpadding="0" cellspacing="0">
<tr><td>name</td><td>Mark Overton</td></tr>
<tr><td>email</td><td>test@test.com</td></tr>
<tr><td>title</td><td>Mr</td></tr>
<tr><td>phone</td><td>777777777</td></tr>
<tr><td>message</td><td>TEst</td></tr>
</table>
</div>
我试过的
- 取出部分模板。
- 仔细检查所有生成的 HTML。
- 正在扫描 HTML 模板以查找损坏的标签。
- 删除周围的 div。
- 仔细检查所有 CSS。
- 用头撞墙
我需要你做什么?
想法,您认为可能导致此问题的任何事情。
我很乐意提供您认为可能有用的任何信息,但在现阶段我不确定那是什么,我不确定过去是否有人遇到过类似问题并且能够给我指出正确的方向。
终于解决了:
它在 Outlook 中被隐藏的原因是因为我的模板中有以下代码:
<!--[if gte mso 15]>
<style type="text/css">
table {
font-size: 1px;
line-height: 0;
mso-margin-top-alt: 1px;
mso-line-height-rule: exactly;
}
* {
mso-line-height-rule: exactly;
}
</style>
<![endif]-->