Por que o e-mail é maior?
Como os dados são codificados em base64
, que codifica grupos de até três bytes como grupos de quatro caracteres ASCII imprimíveis. Normalmente, esses grupos de caracteres imprimíveis são divididos em linhas.
O resultado é que os dados codificados têm pouco mais de 1⅓ vezes o tamanho dos dados originais.
Por que a base64 é usada?
O e-mail tem uma longa história e foi originalmente projetado para transportar texto. Somente valores de byte representando caracteres imprimíveis em ASCII poderiam passar de forma confiável pela grande variedade de sistemas de e-mail no planeta.
Assim, o MIME dividiu dois esquemas para codificar outros dados como texto ASCII - "quoted-printable" projetado para texto ASCII com alguns outros bits, e "BASE64" para dados binários arbitrários.
Houve extensões no protocolo SMTP para tentar remover essas restrições. Primeiro, 8BITMIME em 1994, que permitia valores de octetos mais altos, mas infelizmente não removia limites relacionados a comprimentos de linha e terminações de linha, portanto, não era adequado para dados binários arbitrários; e, em seguida, BINARYMIME em 1995, que permitia a transferência de mensagens contendo dados binários arbitrários.
No entanto, esses padrões não viram adoção generalizada. Um problema é, o que acontece se um salto na cadeia de correio os suporta, mas o próximo salto não? O servidor de e-mail não pode enviar o e-mail como está, deve rejeitá-lo como não entregue e devolvê-lo (o que é improvável que seja aceitável para os usuários) ou convertê-lo (o que requer um código extra significativo no servidor de e-mail) . A conversão é feita especialmente dolorosa pelas regras MIME quanto ao não uso de codificações de transferência de conteúdo em tipos de várias partes.