Une pièce jointe grossit d'un tiers dans l'e-mail
Publié le 07/09/2026 · 4 min de lecture · Outils fichiers
Daniel Okonkwo — Développeur front-end et rédacteur Tech chez OneKitly
Performance web · Formats de fichiers
Vérifié à partir de 3 sources
Le courrier a été conçu pour transporter du texte : un fichier doit donc être réécrit en texte avant de voyager. L'encodage employé est le base64 — trois octets deviennent quatre caractères imprimables, et MIME coupe ensuite le résultat en lignes de 76 caractères terminées par un retour chariot et un saut de ligne. Trois octets pour quatre font un facteur fixe de 1,3333, les coupures de ligne ajoutent 2,6 %, et le total mesuré est de 1,3684 — un fichier de 10 Mio occupe 13,684 Mio du message. À rebours, une limite d'envoi de 25 Mo transporte environ 18,3 Mio de fichiers réels, une limite de 20 Mo environ 14,6 Mio et une limite de 10 Mo environ 7,3 Mio, avant que le corps du message et les en-têtes ne prennent leur part. L'extracteur inverse ici l'encodage et te rend les octets d'origine, octet pour octet : le gonflement n'existe qu'à l'intérieur du message.
Le courrier transporte les fichiers en texte, trois octets écrits en quatre caractères. Une pièce jointe de 10 Mio occupe 13,68 Mio du message — d'où le fait qu'une limite de 25 Mo signifie en réalité environ 18 Mio de fichiers.
Pourquoi un fichier ne peut pas voyager tel quel
Les protocoles du courrier ont été écrits quand une liaison garantissait sept bits par caractère et rien de plus. Un octet de PDF ou de photographie peut prendre l'une de 256 valeurs, dont plusieurs signifient quelque chose pour un serveur de messagerie — un retour chariot isolé, un octet nul, une ligne qui commence par un point. Le base64 contourne tout cela en n'employant que 64 caractères sur lesquels tous les systèmes s'accordent, au prix d'en écrire quatre pour trois octets. Cette arithmétique n'est pas un détail d'implémentation qu'on optimiserait : c'est le prix de la garantie que le fichier arrive identique.
Cela explique aussi pourquoi compresser avant de joindre aide, et pourquoi recompresser un fichier déjà compressé n'aide pas. Un dossier de documents ramené au tiers de sa taille coûte le tiers du base64 aussi, puisque l'encodage s'applique aux octets qu'on lui donne. Une photographie ou un PDF est déjà compressé : les zipper n'y gagne rien, et le 1,3684 s'applique toujours à la taille entière.
Sortir les fichiers, avec les bons noms
Chaque pièce jointe occupe sa propre partie du message, avec un Content-Type qui dit ce qu'elle est et un Content-Disposition qui donne le nom de fichier choisi par l'expéditeur. Les deux peuvent être encodés en RFC 2047 : une facture française peut s'appeler =?UTF-8?B?ZmFjdHVyZSBqYW52aWVyLnBkZg==?= dans le fichier brut et Facture janvier.pdf une fois décodée — l'extracteur décode, c'est la différence entre un dossier de noms lisibles et un dossier de charabia. Les noms survivent aussi aux espaces et aux accents, que certains scripts d'extraction plus anciens abîment.
| Limite annoncée | Fichiers qui tiennent | Taille encodée |
|---|---|---|
| 25 Mo | 18,3 Mio | 25 Mo |
| 20 Mo | 14,6 Mio | 20 Mo |
| 10 Mo | 7,3 Mio | 10 Mo |
| Un fichier de 10 Mio | 10 Mio | 13,68 Mio (×1,3684) |
Questions fréquentes
- Le fichier extrait est-il identique à celui qui a été envoyé ?
- Oui. Le base64 est un encodage sans perte : le décodage rend exactement les octets entrés — la somme de contrôle du fichier extrait correspond à celle de l'original. C'est pourquoi le courrier peut transporter un PDF signé ou un logiciel sans les corrompre, et pourquoi la taille visible sur le disque après extraction est la vraie taille, pas la taille encodée.
- Pourquoi ma boîte est-elle plus grosse que les fichiers dont je me souviens ?
- En partie, et cela s'additionne. Chaque pièce jointe reçue est stockée encodée : une boîte qui contient 3 Gio de fichiers en occupe environ 4,1. Par-dessus, un message que tu as envoyé avec une pièce jointe est en général conservé deux fois — dans Envoyés et dans le fil — et un message transféré emporte de nouveau ses pièces jointes. Extraire puis supprimer les plus grosses pièces jointes rapporte en général plus que supprimer des centaines de petits messages.
- Puis-je sortir une pièce jointe d'un message qui refuse de s'ouvrir ?
- Souvent oui, et c'est l'une des meilleures raisons d'avoir cet outil sous la main. Un message dont le HTML met en échec un logiciel de messagerie reste un fichier MIME bien formé, et la pièce jointe occupe sa propre partie avec son propre encodage ; l'extracteur lit la structure au lieu d'afficher le message, si bien qu'un corps qui refuse de s'afficher n'empêche pas le fichier de sortir.
Articles qui pourraient t'intéresser
Tous les guides →Outils similaires
Sources
Tu as repéré une erreur dans cet article ?