3

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

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

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

感谢您的帮助!

4

3 回答 3

6

有条件的评论

可以使用条件注释来实现这一点。

<!--[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 上测试良好。

于 2013-04-24T20:01:10.790 回答
3

对于以前版本的 Outlook(2003 及以下版本),您可以使用 IE CSS hack,但现在不能。

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

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

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

于 2011-05-31T15:18:02.660 回答
-3

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

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

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

于 2011-05-31T15:17:26.547 回答