Pourquoi l'e-mail est-il plus grand ?
Parce que les données sont codées en base64
qui code des groupes de trois octets maximum sous forme de groupes de quatre caractères ASCII imprimables. Généralement, ces groupes de caractères imprimables sont ensuite divisés en lignes.
Le résultat est que les données codées sont un peu plus d'une fois plus grandes que les données originales.
Pourquoi utiliser la base64 ?
Le courrier électronique a une longue histoire et a été conçu à l'origine pour transporter du texte. Seules les valeurs d'octets représentant des caractères imprimables ASCII pouvaient passer de manière fiable dans la grande variété de systèmes de courrier électronique existant sur la planète et certains d'entre eux pouvaient poser problème.
MIME a donc conçu deux systèmes pour coder d'autres données sous forme de texte ASCII : "quoted-printable", conçu pour un texte essentiellement ASCII avec quelques autres bits, et "BASE64", pour des données binaires arbitraires.
Des extensions ont été apportées au protocole SMTP pour tenter de supprimer ces restrictions. Tout d'abord, 8BITMIME en 1994, qui autorisait des valeurs d'octets plus élevées mais ne supprimait malheureusement pas les limites liées à la longueur et à la fin des lignes, et ne convenait donc pas aux données binaires arbitraires ; puis BINARYMIME en 1995, qui permettait le transfert de messages contenant des données binaires arbitraires.
Toutefois, ces normes n'ont pas été largement adoptées. Un problème se pose : que se passe-t-il si un maillon de la chaîne de courrier les prend en charge, mais pas le suivant ? Le serveur de courrier ne peut alors pas envoyer le courrier tel quel, il doit soit le rejeter comme non distribuable et le renvoyer (ce qui a peu de chances d'être acceptable pour les utilisateurs), soit le convertir (ce qui nécessite un code supplémentaire important dans le serveur de courrier). La conversion est rendue particulièrement pénible par les règles MIME concernant la non-utilisation des codages de transfert de contenu sur les types multipart.