arc*_*pus 113 email thunderbird base64
在将数据附加到我的电子邮件时,我注意到 Thunderbird 计算的结果电子邮件的总大小比我附加的文件大得多。
这是最近的一个例子:两张图片,一张是 13MB,一张是 3.6MB,总共应该是大约 17MB。有四行文字。Thunderbird 然后问我是否真的想发送一封总大小为 22MB 的电子邮件。
这种差异从何而来?5MB 的文字听起来有点多。
Dav*_*rtz 214
您的数据为 17 MiB。一个 MiB 中有 1024 KiB。KiB 中有 1024 个 B。一个字节有 8 位。所以这是 142,606,336 位。
Base 64 编码将每六位编码为一个单独的字节。所以我们需要大约 23,767,722 个字节。除以 1024 两次得到 22.67 MiB。所以这就是 22 MiB 的来源。
电子邮件是一项相当古老的技术,并且不假定使用 8 位干净的管道。
plu*_*ash 51
因为数据的编码方式是base64
将最多三个字节的组编码为四个可打印 ASCII 字符的组。通常,这些可打印字符组然后被分成几行。
结果是编码后的数据刚好超过1?倍原始数据的大小。
电子邮件有着悠久的历史,最初设计用于承载文本。只有代表 ASCII 可打印字符的字节值才能可靠地通过地球上的各种电子邮件系统,其中一些可能会出现问题。
因此,MIME 设计了两种将其他数据编码为 ASCII 文本的方案——“quoted-printable”主要用于带有一些其他位的 ASCII 文本,“BASE64”用于任意二进制数据。
已经对 SMTP 协议进行了扩展以尝试消除这些限制。首先,1994 年的 8BITMIME,它允许更高的八位字节值,但遗憾的是没有去除与行长和行尾相关的限制,因此不适用于任意二进制数据;然后是 1995 年的 BINARYMIME,它允许传输包含任意二进制数据的消息。
然而,这些标准并未得到广泛采用。一个问题是,如果邮件链中的一个跃点支持它们而下一跃点不支持,会发生什么?邮件服务器然后不能按原样发送邮件,它必须要么拒绝它作为无法投递并退回(这不太可能被用户接受),要么转换它(这需要邮件服务器中的大量额外代码) . 关于不在多部分类型上使用内容传输编码的 MIME 规则使转换变得特别痛苦。
归档时间: |
|
查看次数: |
12133 次 |
最近记录: |