Impact des mails au format HTML versus Texte
Un jour, je suis arrivé sur le site de GreenIT et l’article faisait référence à une vieille étude de l’ADEME sur la consommation d’envoi de mails (que je n’ai pas pu retrouver sur leur site).
Le scénario retenu (envoi de plusieurs mails avec une pièce jointe de 1Mo) était peu conforme à la réalité, à tout le moins à la mienne et à celle autour de moi. Cependant, cela a éveillé ma curiosité et j’ai voulu savoir combien pesait un mail que j’envoyais couramment.
Utilisant Apple Mail, j’ai trouvé comment afficher la taille des mails (pour info, sélectionnez le, menu View/Show Message Size) et là j’ai eu comme une révélation. Le moindre “petit” mail pesait au moins 5 Ko ce qui m’a paru excessif. J’ai voulu en avoir le cœur net et j’ai commencé à faire des essais.
Par exemple, le mail suivant avec comme sujet “Mail d’exemple” et dont le contenu est
“Bonjour, Ceci est un mail très court pour illustrer un article destiné au site de Nuageo. Cordialement, Philippe”
Pèse à la réception 6 Ko !
Alors que le mail à l’émission ne pèse que 557 octets
Étant donné que la taille du message utile (sujet + contenu) pèse 129 octets, il m’a paru nécessaire d’essayer de comprendre ce qu’il se passait et ensuite d’expliquer une telle différence.
Que se passe-t-il à l’envoi ?
Le mail, comme beaucoup de protocoles web tels que HTTP 1.1, FTP … sont des protocoles texte avec une syntaxe très simple basée sur les retour chariot. C’est devenu très, très difficile de trouver un serveur SMTP libre d’accès mais il y a quelques années, on pouvait encore envoyer un mail avec un simple terminal en lançant telnet et se faire passer pour Joe Biden par exemple.
Remarque : l’échange de mails étant basé sur un protocol texte, les clients mail sont obligés d’encoder les fichiers joints, comme les images ou les videos, pour qu’ils soient considérés comme du texte en utilisant un encoding base64 ce qui augmente la taille du fichier d’environ 40%. Il est donc utile de rappeler de limiter l’envoi de pièces jointes par mail.
Le client mail construit le mail basiquement en 2 parties :
- l’en-tête
- le corps du mail
Ce qui donne pour notre message précédent (nous n’allons pas détailler chaque élément de l’en-tête)
En-tête
From: Philippe RABIER <xxxx@yyyy.fr> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\)) Subject: Mail d'exemple X-Universally-Unique-Identifier: 20CD6D78-F568-4E14-95CD-6FCDE2AB3507 Message-Id: <FBCBF8CA-F375-444D-8CE3-CC998A9E5B85@yyyy.fr> Date: Mon, 19 Sep 2022 13:16:55 +0200 To: Philippe Rabier <uuuu@vvvv.com>
Corps du mail
Bonjour, Ceci est un mail tr=C3=A8s court pour illustrer un article destin=C3=A9 = au site de Nuageo.=20 Cordialement, Philippe
Le message est tellement petit que la taille de l’en-tête est supérieure à celle du contenu, ce qui est assez commun car quand j’analyse ma boite d’envoi de mails, plus de 50% de 6 800 mails font moins de 5 Ko (nous y reviendrons).
Vous remarquerez que le corps du mail ne contient aucune information de mise en forme, de police, de taille de police, … C’est parce que le mail est de type Plain Text (Content-Type: text/plain). Que se passe-t-il si on change tout le texte du mail ci-dessus en taille 14 ? La taille du mail envoyé passe de 557 octets à 2 Ko et il a été multiplié par 4. Que s’est-il passé ?
Le corps du mail a évolué. En demandant au client Mail d’ajouter des informations de mise en forme (passer la police en taille 14 pour l’ensemble du message), vous l’avez obligé à ajouter une section complète et c’est devenu un multipart message. Il ne s’agit pas ici de faire un cours sur MIME (Multipurpose Internet Mail Extensions) et je laisse au lecteur le soin de faire ses propres recherches. Mais le corps du message a évolué de la façon suivante :
--Apple-Mail=_F556A-B086-452A-A1A7-1FEB68131D1D Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Bonjour, Ceci est un mail tr=C3=A8s court pour illustrer un article destin=C3=A9 = au site de Nuageo. Cordialement, Philippe= --Apple-Mail=_F556A-B086-452A-A1A7-1FEB68131D1D Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 <html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; = charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; = -webkit-nbsp-mode: space; line-break: after-white-space;" class=3D""><meta= http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dutf-8" = class=3D""><div style=3D"word-wrap: break-word; -webkit-nbsp-mode: = space; line-break: after-white-space;" class=3D""><span = style=3D"font-size: 14px;" class=3D"">Bonjour,<br class=3D""><br = class=3D"">Ceci est un mail tr=C3=A8s court pour illustrer un article destin=C3=A9 = au site de Nuageo.<br class=3D""><br class=3D"">Cordialement,<br = class=3D""><br class=3D"">Philippe</span></div></body></html>= --Apple-Mail=_F556A-B086-452A-A1A7-1FEB68131D1D--
Le corps du mail a maintenant une nouvelle section, une version HTML avec exactement le même contenu sémantique que la version Plain Text.
Nous savons donc pourquoi la taille d’un message peut varier grandement. Mais cela n’explique pas pourquoi le même message en réception pèse 6 Ko.
Pourquoi un message passe de 500 octets à 6 Ko ?
Comme je l’ai constaté, le message a pris un gros embonpoint (taille x12) !
Tout se joue dans l’en-tête. Les serveurs de messagerie ajoutent des informations comme ci-dessous :
Et encore, la copie d’écran ne comprend pas toute l’en-tête.
A ce moment de nos recherches, la question qu’on peut se poser est la suivante : tous les serveurs de messagerie sont-ils égaux ?
La réponse est non, même si on pouvait s’en douter. J’ai testé avec 3 serveurs de messagerie, ceux que j’utilise quotidiennement :
- iCloud d’Apple
- Google Workspace
- Yahoo!
Et j’ai pris les scénarios suivants :
- mails à moi-même pour chaque serveur
- mails croisés, d’un serveur à l’autre
Le contexte n’a pas changé : en utilisant Apple Mail, la taille du message à l’émission fait toujours autour de 550 octets (il y a des variations mais elles sont négligeables). Les résultats sont consignés dans le tableau ci-dessous :
Emission -> Réception |
iCloud |
Google Workspace |
Yahoo! |
iCloud | 3 Ko | 6 Ko | 7 Ko |
Google Workspace | 5 Ko | 557 octets | 7 Ko |
Yahoo! | 5 Ko | 6 Ko | 8 Ko |
Le résultat de Google Workspace vers lui-même est étonnant. J’ai refait l’envoi plusieurs fois et j’ai obtenu le même résultat. Mais il est non significatif car il est peu fréquent de s’envoyer un mail à soi-même. Par acquis de conscience, j’ai envoyé le message depuis 2 noms de domaine qui s’appuient sur Google Workspace. La taille du message à l’arrivée est de 5 Ko.
On peut constater à partir des essais ci-dessus que le serveur de messagerie qui envoie le courrier est prépondérant (serveur SMTP). On peut également constater que iCloud ajoute moins d’informations dans l’en-tête que Google Workspace qui lui-même en ajoute moins que Yahoo. Il est à noter que ces résultats sont conformes aux premiers essais faits il y a un mois, il ne semble pas qu’il y ait de dispersion des résultats en fonction du temps.
Cependant, il est aussi important de comprendre que les plateformes de messagerie n’ajoutent pas des informations dans l’en-tête sans raison. Les headers ajoutés visent à détecter les spams ou spoofings (SPF, ARC, DKIM,…) mais force est de constater qu’il y a une différence importante entre iCloud et Yahoo! par exemple.
Et maintenant ?
Vous avez compris que pour cette simple action d’envoyer un mail, différents services et paramétrages consomment plus ou moins de de ressources.
Si vous décidez d’agir pour être en cohérence avec une démarche de sobriété énergétique, vous pouvez le faire, avec plus ou moins de facilité, à 2 niveaux.
Au niveau de l’envoi, c’est à dire du client mail, vous avez le plus de latitude.
Paramétrez l’envoi en texte brut/Plain Text
Dans Apple Mail, vous pouvez choisir cette option dans les préférences
Si vous utilisez l’interface web Gmail, vous pouvez choisir cette option dans le formulaire d’envoi de mail
N’utilisant pas d’autre client mail, je vous laisse chercher, cher lecteur, où se trouve le paramétrage en question. S’il n’y en a pas, vous pouvez changer d’application si c’est possible.
Concernant les mobiles, par défaut les messages sont envoyés au format Plain Text sauf si vous mettez en gras ou italique certains mots. Mais comme il est moins facile d’utiliser les outils de mise en forme, les messages sont plus rarement envoyés en HTML.
Malgré ces réglages, il est hélas possible que le paramétrage au niveau du serveur force un message à être envoyé en HTML. C’est le cas par exemple de MS Exchange mais pas Google Workspace. Vous pouvez le tester en envoyant un message entre 2 comptes mail que vous utilisez et vous regardez l’en-tête. Si c’est le cas, il ne vous reste plus qu’à aller négocier auprès de votre administrateur pour changer les réglages avec cet article par exemple 😉
N’envoyez pas d’image
Ne mettez pas d’image dans votre signature. Il y a de grandes chances que votre image soit plus grosse que le texte de votre mail. Et évitez de mettre votre téléphone et votre adresse dans une image. Elle empêche les “data detectors” de votre mobile de pouvoir vous appeler ou d’utiliser Maps/Plans pour venir à votre rendez-vous par exemple.
Ne mettez pas en forme votre texte
C’est redondant avec le premier point mais mettre en forme du texte, même un seul mot transforme le message en HTML. L’avantage de choisir Plain Text comme paramétrage est que vous ne pouvez pas formater votre texte ou le client Mail vous demandera une confirmation donc vous le faites en conscience.
Je vous conseille de regarder vos mails envoyés et vous serez peut être surpris de voir que vous n’utilisez pas souvent les capacités de mise en forme. En prenant mon cas personnel et en vous faisant grâce des calculs de statistiques, j’ai regardé sur un échantillon de 270 mails, à comparer avec mes 6 800 mails dans ma boite d’envoi, et seuls 8 messages contenaient des quelques mots en gras ou italique soit 3% de mes mails envoyés.
Changez de serveur de messagerie
C’est compliqué voir impossible concernant votre messagerie professionnelle sauf si vous avez le pouvoir de décision. Et encore, l’information est très difficile à trouver. Il faudrait faire des essais avec d’autres plateformes comme Fastmail, Microsoft, infomaniak, …
A titre personnel, si vous avez plusieurs comptes mails, vous pouvez faire l’essai et choisir prioritairement le serveur de messagerie le plus sobre.
En synthèse
Vous pouvez prendre des mesures simples :
- utilisez le format Plain Text
- parlez en autour de vous (pause café un peu techno ;-))
- limitez l’envoi de mails (en quantité et en nombre de destinataires)
Mais le mail est-il le bon outil ?
Dans la mesure du possible, il est préférable d’utiliser une messagerie instantanée soit personnelle comme Messages, WhatsApp, Signal ou bien professionnelle comme Slack ou Mattermost. En effet les contenus (message en lui-même et pièces jointes) ne sont pas dupliqués entre plusieurs serveurs et le protocole est nettement plus efficient (voir références en fin d’article).
Conclusion
Le gain unitaire par mail est de l’ordre de quelques Ko peut être considéré comme négligeable.
On peut essayer de mettre en perspective avec les 320 milliards de mails échangés par jour (source) mais nous n’avons pas d’information sur la taille des messages. Et étant donné qu’il y a à peu près 45% de spam en 2021 (source) et qu’il y a peu de chance que les auteurs de spam soient sensibles à la taille des messages, près de la moitié du traffic ne changera pas.
Le but de cet article est juste de vous sensibiliser à une problématique avec très peu d’effort à faire. C’est déjà ça de gagner.
Attention par contre à ne pas prendre cet article dans le mauvais sens. S’il part d’une pure curiosité, qu’il se termine par une recherche de sobriété, le sujet des mails reste marginal dans l’impact environnemental du Numérique. Rappelez-vous, entre 75 et 90% de l’impact est lié aux matériel utilisateur (ordinateur, tablettes, téléphone) : alors choisissez de faire durer vos équipements pour avoir de l’impact…et écrivez en plain text pour être cohérent 🙂
Références : Voici les informations concernant les architectures de WhatsApp et Signal qui ont servi à étayer cette article. Architecture WhatsApp Architecture Signal