防止邮件HTML被过滤的白名单指南
这是一份专为邮件开发者打造的实战避坑指南,直击HTML邮件在Gmail、Outlook、Apple Mail等主流客户端中频繁“失灵”的核心痛点——从几乎全军覆没的危险标签(如

哪些HTML标签会被邮件客户端直接删掉
绝大多数邮件客户端(Gmail、Outlook、Apple Mail)在渲染前会预处理HTML,移除它认为“不安全”或“不支持”的标签。不是所有标签都平等——、、、、 几乎100%被静默删除; 标签在Gmail中完全失效,Outlook则只支持极简内联样式; 在iOS Mail里可能渲染为空白。
真正能稳定存活的标签非常有限,核心白名单只有: 邮件客户端对CSS的支持极其分裂:Gmail不解析 邮件中 发几百封测试邮件不等于覆盖真实环境。很多团队只测Gmail网页版,却忘了Windows Outlook桌面客户端仍是企业邮箱主力;或者用工具生成响应式代码,但没验证 最常被忽略的点:邮件HTML不是网页,它没有DOM就绪事件,也没有加载完成回调。任何依赖JavaScript交互的设计,从一开始就不该出现在邮件里——这不是兼容性问题,是根本不可行。 理论要掌握,实操不能落!以上关于《防止邮件HTML被过滤的白名单指南》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!、、、、、
、 、 、 、、。其中 不是“推荐用”,而是“不得不靠它布局”——因为 Outlook 仍依赖其解析宽度/居中等基础样式。
内联样式为什么比 class 更可靠
块,Outlook(尤其是Windows桌面版)会忽略大部分伪类(如:hover)和现代属性(如flex、grid),而Apple Mail对!important有特殊处理逻辑。唯一能跨平台生效的方式,是把样式写进style属性里。 ✅ 安全 + ❌ Gmail会丢掉整个,class也无意义font标签虽过时,但在Outlook 2016/2019中反而比style="font-family:..."更稳定,可作为备选图片链接和alt文本的硬性要求
被过滤或显示为红叉,往往不是因为标签本身,而是路径或属性缺失。Gmail强制要求src必须是HTTPS绝对地址;Outlook会拦截未声明width/height的图片(导致重排错乱);所有主流客户端都依赖alt文本作为图像加载失败时的降级内容——没写alt的图片,在部分企业邮箱网关中会被直接标记为“可疑内容”。
src="images/logo.png" → 被当成本地文件拦截alt="":屏幕阅读器会跳过,且某些反垃圾策略视为空内容风险background-image:Outlook完全不支持,Gmail仅支持层级的简单背景色
测试环节最容易被跳过的三件事
@media查询是否被全部客户端忽略(答案是:基本都忽略)。litmus.com或emailonacid.com查display:none是否被Outlook误判为隐藏恶意内容(它确实会)、未转义的&(应为&)、或UTF-8 BOM头(会导致部分客户端解析失败)
Python自动化核心原理与实战详解

