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

如何检测是否在Outlook 2007或2010中打开HTML电子邮件?,html,outlook-2007,html-email,outlook-2010,Html,Outlook 2007,Html Email,Outlook 2010,我目前正试图为我工作的公司写一份时事通讯。该新闻稿在所有主要的互联网浏览器(IE 5.55至9、Chrome、Firefox、Opera)中都能正确显示,但当任何人在Outlook 2007或2010中打开它时,所有字体看起来都“放大了” 我知道这个问题是因为Outlook像Word一样呈现HTML的方式,如果我手动“收缩”字体,它们在Outlook中看起来很好,但在任何其他电子邮件软件中都不会 我的问题是。有没有一种方法可以检测电子邮件是否正在Outlook甚至Word中打开?鉴于Outloo

我目前正试图为我工作的公司写一份时事通讯。该新闻稿在所有主要的互联网浏览器(IE 5.55至9、Chrome、Firefox、Opera)中都能正确显示,但当任何人在Outlook 2007或2010中打开它时,所有字体看起来都“放大了”

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

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


谢谢你的帮助

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

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


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

在Outlook的早期版本(2003和以下版本)中,你可以使用IE CSS黑客,但现在不行了

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

我的建议是使用像素来设置文本样式(我打赌你使用的是点,对吧?)。我这么说是因为我写了几封发送给不同电子邮件客户端的html电子邮件,不同电子邮件客户端之间的字体大小是相同的(或多或少,但至少不是很不同)

唯一无法设置样式的是缩小/减少行高。Outlook不允许这样做。样式也应设置为内联样式。

条件注释 使用条件注释可能实现这一点

<!--[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 2007/2010/2013中使用条件注释在Litmus上测试良好。

OP希望检测电子邮件客户端,以便他/她可以使用条件样式…这是我的想法,但我想问一下以防万一。非常感谢您的回答:)
<!--[if gte mso 12]>
<style type="text/css">
.myClass {
    /* Special styling for Outlook 2007 and later */
}
</style>
<![endif]-->