UTF-8是HTML邮件唯一安全的选择,因其被Gmail、Apple Mail、Outlook Web等主流客户端广泛支持;GB2312/GBK则基本不被识别,非UTF-8编码在iOS Mail和Android Gmail App中易出现中文方块或截断,且必须用<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">声明,禁用<meta charset>,并确保文件保存为UTF-8无BOM。

HTML邮件必须用 UTF-8 编码,且 <meta> 标签要写在 <head> 里,否则 Outlook、Yahoo 等客户端会乱码或直接拒收。
为什么 UTF-8 是唯一安全的选择
GB2312 或 GBK 在 Gmail、Apple Mail、Outlook Web 中基本不被识别;部分老版 Outlook(如 2007/2010)对 UTF-8 的 BOM 头敏感,但只要不带 BOM 就稳定。实测中,任何非 UTF-8 编码的模板在 iOS Mail 和 Android Gmail App 中都大概率出现中文方块或截断。
- 必须声明:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> - 不能只靠文件保存编码,
<meta>标签是客户端解析的第一依据 - 编辑器保存时务必选 “UTF-8 无 BOM”(VS Code / Sublime / WebStorm 默认可能带 BOM)
- 不要用
<meta charset="UTF-8">—— Outlook 桌面版会忽略它,只认http-equiv形式
Doctype 声明不能省,但只能用 XHTML 1.0 Transitional
HTML5 的 <!DOCTYPE html> 在 Outlook 桌面版中会被静默删除,导致整个文档降级为 quirks mode,表格边距、行高全部错乱。Gmail 和 Hotmail 虽然兼容 HTML5 Doctype,但为保全链路一致,必须统一降级。
- 正确写法:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> - 必须配
<html xmlns="http://www.w3.org/1999/xhtml">,否则某些 Outlook 版本会丢弃<head>内容 - 不要加
<meta name="viewport">—— 邮件客户端不解析它,反而可能触发 Gmail 的垃圾邮件规则
文件体积超 15KB 就可能进垃圾箱
不是“大概率”,而是真实阈值:Yahoo 和 AOL 明确将 >15KB 的 HTML 邮件归类为可疑内容;Outlook.com 对 >12KB 的模板开始限制图片加载;163/NetEase 邮箱会在 >10KB 时自动折叠正文。
立即学习“前端免费学习笔记(深入)”;
- 压缩手段有限:不能删空格换行(有些客户端依赖缩进解析),但可删注释、合并重复 style 值
- 图片必须外链,且路径不能含中文或空格 —— 否则 URL 解析失败,
<img>变成 0×0 占位符 - 避免内联 base64 图片 —— Outlook 全系列、iOS Mail 完全不支持,且直接推高体积
- 所有字体名必须用英文逗号分隔,且结尾补
sans-serif或serif,否则 QQ 邮箱会判为垃圾邮件
最易被忽略的一点:即使你写了正确的 charset 和 Doctype,只要服务器返回的 HTTP header 里 Content-Type 缺少 charset=utf-8(比如只写 text/html),Gmail 和 Apple Mail 仍会按 ISO-8859-1 解析 —— 这种问题在线下测试永远发现不了,只有发信后才暴露。



















