You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

HTML邮件中MSO fallback字体代码放置位置及被移除问题咨询

关于HTML邮件中Outlook条件样式的位置及Direct Mail移除问题的解答

条件样式代码该放哪里?

首先明确:这段针对MSO(Outlook的Word渲染引擎)的条件样式必须放在<head>标签内部,而且建议放在你的主CSS样式块的后面。

原因如下:

  • HTML邮件的<head>是存放全局样式的标准位置,Outlook的MSO条件注释在这里能被精准识别和执行;
  • 放在主样式之后可以保证它能覆盖主样式里的字体设置——毕竟样式优先级是“后定义的覆盖先定义的”,这样Outlook就能乖乖用你指定的Arial字体,不会跳回默认的Times New Roman。

如果极端情况下<head>里的代码被工具篡改,你也可以试试把这段代码放在<body>的最开头,Outlook同样能识别,但<head>才是最优选择。

为什么Direct Mail for Mac会移除这段代码?

Direct Mail这类邮件工具经常会做“代码优化”,但有时候会帮倒忙,移除你的条件注释,常见原因有这几个:

  1. 误把功能性注释当普通注释清理<!--[if mso]>...<![endif]-->虽然是带条件的特殊注释,但有些工具的过滤规则会把所有<!-- -->包裹的内容都当成无用注释删掉;
  2. 代码格式存在问题:你示例里的type=”text/css”用的是中文双引号!这种非标准标点会让工具识别为无效代码,直接把整个块删掉。一定要换成英文双引号type="text/css"
  3. 工具的兼容性预设干扰:有些邮件工具会自动调整代码来适配某些客户端,结果误删了专为Outlook写的条件样式。

解决办法

给你几个实用方案:

  • 修正代码格式:先把所有中文标点换成英文的,标准代码应该是这样的:
    <!--[if mso]>
    <style type="text/css">
      h1 { font-family: Arial, sans-serif; }
    </style>
    <![endif]-->
    
  • 检查工具设置:打开Direct Mail的偏好设置,看看有没有“保留HTML注释”“禁用代码自动优化”之类的选项,开启这些选项就能阻止工具删掉你的条件代码;
  • 换导入方式:如果是复制粘贴代码进去的,试试把代码保存成纯HTML文件,再导入Direct Mail。很多工具对文件导入的代码过滤会更宽松;
  • 退而求其次放<body>:如果<head>里死活留不住,就把这段代码放在<body>标签的最顶部,Outlook照样能识别并应用样式。

内容的提问来源于stack exchange,提问作者Markeee

火山引擎 最新活动