如何检测是否在Outlook 2007或2010中打开了HTML电子邮件?

时间:2011-05-31 15:10:29

标签: html outlook-2007 html-email outlook-2010

我目前正在尝试为我工作的公司撰写简报。该通讯在所有主要的互联网浏览器(IE 5.55至9,Chrome,Firefox,Opera)中都能正确显示,但是当有人在Outlook 2007或2010中打开它时,所有字体看起来都“爆炸”。

我知道这个问题是因为Outlook会像Word一样呈现HTML,如果我手动“缩小”字体,它们在Outlook中看起来很好,但在其他任何电子邮件软件中都没有。

我的问题是这个。有没有办法检测是否在Outlook,甚至Word中打开了电子邮件?鉴于Outlook不允许使用JavaScript,此解决方案必须采用纯HTML格式。我的计划是检测电子邮件浏览器并动态更改字体(一种if-else)。

感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

使用以前版本的Outlook(2003和bellow)你可以使用IE CSS hacks,现在你不能。

与您的问题相关,您无法检测是否正在使用Outlook查看它,即使您这样做了,正如我所说,您实际上不能有条件样式:(

我的建议是用像素设置文本样式(我打赌你使用点,对吗?)。我这样说是因为我已经完成了几个发往各种电子邮件客户端的HTML电子邮件,并且不同电子邮件客户端之间的字体大小相同(或多或少,但至少没有太大差异)。

唯一不可能的风格是缩小/减少行高。 Outlook不允许这样做。样式也应该内联设置。

答案 1 :(得分:2)

条件评论

有可能使用条件评论来实现这一点。

<!--[if mso ]>      ...<![endif]-->    <!-- Outlook -->
<!--[if gte mso 12]>...<![endif]-->    <!-- Outlook 2007+ -->
<!--[if gte mso 14]>...<![endif]-->    <!-- Outlook 2010+ -->
<!--[if gte mso 15]>...<![endif]-->    <!-- Outlook 2013+ -->
<!--[if !mso ]>     ...<![endif]-->    <!-- Not Outlook -->

由于Outlook支持头部或正文中的style标记,因此可以执行以下操作:

<!--[if gte mso 12]>
<style type="text/css">
.myClass {
    /* Special styling for Outlook 2007 and later */
}
</style>
<![endif]-->

在Outlook 2007/2010/2013中使用条件注释在Litmus上进行了测试。

答案 2 :(得分:-3)

过去使用的常见做法是在html中添加图像。您可以向他们添加一个参数来跟踪电子邮件。

<img src="image.php?email=123">

当然,这些日子几乎每个电子邮件客户端都会阻止进一步的请求。