Ao anexar dados aos meus emails, notei que o Thunderbird calcula o tamanho total do email resultante como muito maior do que os arquivos anexados.
Aqui está um exemplo recente: duas imagens, uma com 13 MB e outra com 3,6 MB, devem totalizar aproximadamente 17 MB. Havia quatro linhas de texto. O Thunderbird me perguntou se eu realmente queria enviar um email com um tamanho total de 22 MB.
De onde vem essa diferença? 5 MB de texto parece um pouco demais.
email
thunderbird
base64
arc_lupus
fonte
fonte
Respostas:
Seus dados eram 17 MiB. Existem 1024 KiB em um MiB. Existem 1024 B em um KiB. Existem 8 bits em um byte. Então são 142.606.336 bits.
A codificação Base 64 codifica a cada seis bits como um byte separado. Então, precisamos de cerca de 23.767.722 bytes. Dividindo por 1024 duas vezes, obtemos 22,67 MiB. Então é daí que o MiB 22 vem.
O email é uma tecnologia bastante antiga e não assume um cachimbo limpo de 8 bits.
fonte
Por que o email é maior?
Como os dados são codificados,
base64
codificam 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 um pouco mais de 1/4 do tamanho dos dados originais.
Por que o base64 é usado?
O email tem uma longa história e foi originalmente projetado para transportar texto. Somente valores de bytes que representam caracteres imprimíveis ASCII poderiam passar de maneira confiável pela grande variedade de sistemas de email do planeta.
Assim, o MIME dividiu dois esquemas para codificar outros dados como texto ASCII - "imprimível entre aspas", projetado principalmente 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, o 8BITMIME em 1994, que permitiu valores mais altos de octetos, mas infelizmente não removeu limites relacionados a comprimentos e terminações de linhas, portanto não era adequado para dados binários arbitrários; e depois BINARYMIME em 1995, que permitiu a transferência de mensagens contendo dados binários arbitrários.
No entanto, esses padrões não foram adotados amplamente. Um problema é: o que acontece se um salto na cadeia de correio os suporta, mas o próximo salto não? O servidor de correio não pode enviar o correio no estado em que se encontra, 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 correio) . A conversão é especialmente dolorosa pelas regras MIME relacionadas ao não uso de codificações de transferência de conteúdo em tipos de várias partes.
fonte