Base64 是一种将二进制数据转换为 ASCII 字符的二进制到文本编码方案。在邮件系统中,Base64 编码允许附件、图片和非 ASCII 文本通过仅支持文本内容的协议安全传输。
SMTP 等邮件协议最初设计为只处理 7 位 ASCII 文本。Base64 编码通过允许在邮件消息中嵌入图片、PDF 和其他附件等二进制内容来弥补这一限制。没有 Base64,邮件附件在传输过程中会损坏。了解 Base64 有助于排除编码问题、优化邮件大小,并确保附件完整地到达收件人。
Base64 编码通过获取二进制数据并将其分成 6 位组,然后将每组映射到 64 个可打印 ASCII 字符之一(A-Z、a-z、0-9、+、/)。此过程将数据大小增加约 33%,但确保内容可以通过仅支持文本的邮件系统而不会损坏。当发送带附件的邮件时,MIME 标准使用 Base64 将二进制文件编码为邮件服务器可以安全传输的文本。
Base64 编码将 3 字节的二进制数据转换为 4 个 ASCII 字符。这个 4:3 的比例导致大约 33% 的大小增加。此外,根据 MIME 规范可能每 76 个字符添加换行符,增加略多的开销。
对于 10KB 以下的小图标和 Logo,Base64 嵌入可以提高加载可靠性。对于较大的图片,外部链接更好,因为它们减少邮件大小、允许缓存并提供跟踪功能。大多数邮件最佳实践建议限制内联 Base64 图片。
大型 Base64 编码内容如果使邮件超过大小限制或创建可疑模式,可能会触发垃圾邮件过滤器。一些邮件客户端也可能阻止或剥离大型 Base64 附件。将总邮件大小保持在 100KB 以下有助于保持良好的送达率。
Base64 更适合二进制数据和非文本内容,统一编码所有内容。Quoted-printable 对于偶尔有特殊字符的文本更高效,因为它只编码非 ASCII 字节。邮件客户端根据内容类型选择适当的编码。