如何检测是否在Outlook 2007或2010中打开HTML电子邮件?
我目前正试图为我工作的公司写一份时事通讯。该新闻稿在所有主要的互联网浏览器(IE 5.55至9、Chrome、Firefox、Opera)中都能正确显示,但当任何人在Outlook 2007或2010中打开它时,所有字体看起来都“放大了” 我知道这个问题是因为Outlook像Word一样呈现HTML的方式,如果我手动“收缩”字体,它们在Outlook中看起来很好,但在任何其他电子邮件软件中都不会 我的问题是。有没有一种方法可以检测电子邮件是否正在Outlook甚至Word中打开?鉴于Outlook不允许JavaScript,此解决方案必须采用纯HTML格式。我的计划是检测电子邮件浏览器并动态更改字体(类似于if-else)如何检测是否在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
谢谢你的帮助 过去常用的做法是在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]-->