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.