¿Por qué el correo electrónico es más grande?
Porque los datos están codificados en los base64
que codifica grupos de hasta tres bytes como grupos de cuatro caracteres ASCII imprimibles. Por lo general, estos grupos de caracteres imprimibles se dividen en líneas.
El resultado es que los datos codificados tienen poco más de 1⅓ veces el tamaño de los datos originales.
¿Por qué se usa base64?
El correo electrónico tiene una larga historia y fue diseñado originalmente para transportar texto. Solo los valores de bytes que representan caracteres imprimibles ASCII podrían pasar de manera confiable a través de la amplia variedad de sistemas de correo electrónico en el planeta.
Por lo tanto, MIME dividió dos esquemas para codificar otros datos como texto ASCII: "imprimido entre comillas", diseñado principalmente para texto ASCII con algunos otros bits, y "BASE64" para datos binarios arbitrarios.
Ha habido extensiones al protocolo SMTP para intentar eliminar estas restricciones. Primero, 8BITMIME en 1994, que permitía valores de octetos más altos, pero desafortunadamente no eliminaba los límites relacionados con las longitudes y terminaciones de línea, por lo que no era adecuado para datos binarios arbitrarios; y luego BINARYMIME en 1995, que permitió la transferencia de mensajes que contienen datos binarios arbitrarios.
Sin embargo, estos estándares no han tenido una adopción generalizada. Un problema es, ¿qué sucede si un salto en la cadena de correo los admite pero el siguiente salto no? El servidor de correo no puede enviar el correo tal cual, debe rechazarlo como no se puede entregar y rebotarlo (lo que es poco probable que sea aceptable para los usuarios) o convertirlo (lo que requiere un código adicional significativo en el servidor de correo) . La conversión se hace especialmente dolorosa por las reglas MIME con respecto a no usar codificaciones de transferencia de contenido en tipos multiparte.