← RFC Reference

Le cycle de vie d'un e-mail

Encyclopédie des Concepts d'Email Published March 2026
ELI5: Envoyer un email est comme envoyer une lettre physique à travers une chaîne de bureaux de poste. Vous l'écrivez (MUA), la remettez à votre bureau de poste local (MSA), ils l'acheminent à travers le système postal (MTA à MTA), elle arrive au bureau de poste du destinataire (MX), est triée dans sa boîte aux lettres (MDA), et il la récupère quand il vérifie son courrier (IMAP/POP3). À chaque étape du trajet, quelqu'un vérifie l'enveloppe, valide les timbres, et décide de la transmettre ou de la signaler.

Du moment où vous cliquez sur « Envoyer » au moment où un message apparaît dans la boîte de réception de quelqu'un — chaque étape, chaque protocole, chaque décision en chemin.

Les acteurs

L'Internet Mail Architecture (RFC 5598) définit les rôles qui participent à la livraison des e-mails. Comprendre ces rôles est essentiel car un même logiciel joue souvent plusieurs rôles, et les limites entre eux sont importantes pour comprendre comment le courrier s'écoule.

Rôle Nom Fonction
MUA Mail User Agent L'application dans laquelle vous composez et lisez les e-mails. Outlook, Thunderbird, l'interface web de Gmail, Apple Mail, l'application mail de votre téléphone.
MSA Mail Submission Agent Le serveur qui accepte les e-mails sortants de votre MUA. Écoute sur le port 587 (STARTTLS) ou 465 (TLS implicite). Nécessite une authentification.
MTA Mail Transfer Agent Le serveur qui achemine les e-mails entre les organisations. Parle SMTP sur le port 25. Gère la mise en file d'attente, les nouvelles tentatives et les décisions de relais.
MX Mail Exchanger Le MTA récepteur, identifié par les enregistrements MX DNS. Accepte le courrier entrant pour un domaine.
MDA Mail Delivery Agent Dépose le message dans la boîte aux lettres du destinataire. Applique les filtres, les règles de tri et la classification du spam.
MRA Mail Retrieval Agent Dessert la boîte aux lettres au MUA via IMAP ou POP3.

En pratique, ces rôles sont souvent fusionnés. L'infrastructure de Gmail est simultanément MSA, MTA, MX, MDA et MRA. Postfix peut agir à la fois comme MSA et MTA. Mais les rôles logiques restent distincts, et les comprendre vous aide à déboguer les problèmes de livraison.

Étape 1 : Composition (MUA)

Le cycle de vie commence lorsqu'un utilisateur compose un message dans son client de messagerie, ou lorsqu'une application génère un message par programmation (via une API ou une bibliothèque SMTP).

Le MUA construit le message selon la RFC 5322 (Internet Message Format) :

From: Alice <alice@example.com>
To: Bob <bob@example.net>
Subject: Project update
Date: Tue, 11 Mar 2026 09:15:00 -0400
Message-ID: <a1b2c3@example.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="boundary42"

--boundary42
Content-Type: text/plain; charset=utf-8

Hi Bob, here is the latest on the project...
--boundary42
Content-Type: text/html; charset=utf-8

<p>Hi Bob, here is the latest on the project...</p>
--boundary42--

Décisions clés à ce stade :

Étape 2 : Soumission (MUA → MSA)

Le MUA se connecte au MSA (RFC 6409) pour remettre le message. C'est l'étape de soumission.

# MUA se connecte au MSA sur le port 587
220 smtp.example.com ESMTP ready
EHLO alices-laptop.local
250-smtp.example.com
250-STARTTLS
250-AUTH PLAIN LOGIN
250 SIZE 52428800
STARTTLS
220 Ready to start TLS
# La poignée de main TLS se termine
EHLO alices-laptop.local
250-smtp.example.com
250-AUTH PLAIN LOGIN
250 SIZE 52428800
AUTH PLAIN AGFsaWNlAHMzY3IzdA==
235 Authentication successful
MAIL FROM:<alice@example.com>
250 OK
RCPT TO:<bob@example.net>
250 OK
DATA
354 Start mail input
[contenu du message]
.
250 OK: queued as ABC123

Ce que le MSA fait à la réception du message :

Le chemin de soumission par API

Lorsque vous utilisez un service de messagerie transactionnelle comme Mailer To Go, votre application soumet généralement via une API HTTP plutôt que SMTP. Le serveur API accepte le message, construit l'enveloppe SMTP et les en-têtes, applique la signature DKIM et injecte le message dans la file d'attente du MTA. L'appel API remplace à la fois le MUA et la transaction SMTP MUA-MSA, mais tout ce qui en aval reste identique.

Étape 3 : Routage et transfert (MTA → MTA)

Le MTA d'envoi doit maintenant livrer le message au domaine du destinataire. C'est la phase de relais, régie par la RFC 5321 (SMTP).

Résolution DNS

Le MTA recherche les enregistrements MX pour le domaine du destinataire :

$ dig +short MX example.net
10 mx1.example.net.
20 mx2.example.net.

Il essaie d'abord le MX avec la plus basse priorité. Si ce serveur est inaccessible, il bascule vers le suivant. Voir DNS and Mail Routing pour l'algorithme complet, incluant le basculement vers les enregistrements A/AAAA et la gestion Null MX.

Le transfert

# Le MTA d'envoi se connecte à mx1.example.net:25
220 mx1.example.net ESMTP
EHLO sender.mailertogo.com
250-mx1.example.net
250-STARTTLS
250-SIZE 26214400
250 ENHANCEDSTATUSCODES
STARTTLS
220 Ready to start TLS
# La poignée de main TLS — la connexion est maintenant chiffrée
EHLO sender.mailertogo.com
250-mx1.example.net
250 ENHANCEDSTATUSCODES
MAIL FROM:<alice@example.com>
250 OK
RCPT TO:<bob@example.net>
250 OK
DATA
354 End data with <CR><LF>.<CR><LF>
[message avec en-tête Received: supplémentaire]
.
250 OK: queued as DEF456

À ce stade :

Mise en file d'attente et nouvelles tentatives

Si le MX récepteur retourne une erreur temporaire 4xx (serveur occupé, greylisting, limite de débit), le MTA d'envoi met le message en file d'attente et essaie plus tard. Les calendriers de nouvelles tentatives utilisent généralement un backoff exponentiel : 15 minutes, 30 minutes, 1 heure, 2 heures, etc. Si le message ne peut pas être livré après la période de nouvelle tentative (généralement 4–5 jours), le MTA génère un message de rebond (DSN) et l'envoie à l'expéditeur de l'enveloppe.

Étape 4 : Réception (MX)

Le MX récepteur (le MTA qui accepte le courrier entrant pour le domaine du destinataire) est l'endroit où la plupart du filtrage se produit. C'est le gardien.

Au moment de la connexion, avant l'arrivée de tout contenu du message :

Pendant la phase d'enveloppe :

Après DATA (le message complet est reçu) :

Étape 5 : Livraison (MDA)

L'agent de livraison de courrier prend le message qui a passé le filtrage et le dépose dans la boîte aux lettres du destinataire. Dans de nombreux systèmes, le MDA est intégré au serveur MX plutôt que d'être un processus séparé.

Les responsabilités du MDA :

À ce stade, le message est au repos dans le magasin de messagerie du destinataire. La transaction SMTP est terminée. La responsabilité du MTA d'envoi s'est terminée lorsqu'il a reçu le 250 OK du MX récepteur.

Étape 6 : Récupération (MRA → MUA)

Le client de messagerie du destinataire récupère le message du magasin de messagerie à l'aide de l'un des trois protocoles :

IMAP (RFC 9051)

Le protocole d'accès au courrier dominant. IMAP conserve les messages sur le serveur et synchronise l'état (lu/non lu, drapeaux, dossiers) entre plusieurs clients. Le client télécharge d'abord les en-têtes du message et récupère les corps complets à la demande. Les modifications apportées sur un client (marquer comme lu, déplacer dans un dossier) se reflètent sur tous les clients.

POP3 (RFC 1939)

Le protocole plus ancien et plus simple. POP3 télécharge les messages vers le client et (par défaut) les supprime du serveur. Il ne synchronise pas l'état entre les clients. Largement supplanté par IMAP, mais toujours utilisé dans certains scénarios.

Accès Web et API

Les interfaces de webmail (Gmail, Outlook.com) et les applications mobiles accèdent au magasin de messagerie via des API propriétaires ou JMAP (RFC 8620), contournant entièrement IMAP/POP3. Le message ne quitte jamais les serveurs du fournisseur — le client l'affiche via une requête web.

Où les choses tournent mal : Modes de défaillance à chaque étape

Échecs de soumission

L'authentification échoue (mauvais mot de passe, jeton expiré), le MSA rejette le message (dépassement de la limite de taille, violation de politique) ou la connexion expire. L'utilisateur voit immédiatement une erreur.

Échecs de routage

La résolution DNS échoue (pas d'enregistrements MX, expiration de DNS), tous les hôtes MX sont inaccessibles ou chaque MX retourne une erreur permanente. Après épuisement des nouvelles tentatives, l'expéditeur reçoit un rebond (DSN).

Rejet au moment de la réception

Le MX récepteur rejette le message au moment de SMTP : adresse IP bloquée (550), authentification échouée (550 5.7.1), destinataire inconnu (550 5.1.1) ou rejet de contenu (554). Le MTA d'envoi génère une notification de rebond à l'expéditeur de l'enveloppe.

Filtrage post-acceptation

Le MX a accepté le message (250 OK) mais le MDA le route vers le dossier spam en fonction de l'analyse de contenu et du score de réputation. L'expéditeur ne reçoit pas de rebond — le message a été techniquement « livré » — mais le destinataire ne le voit jamais. C'est le problème de livrabilité le plus courant et le plus difficile à diagnostiquer.

Boîte aux lettres pleine

La boîte aux lettres du destinataire est pleine. Selon l'implémentation, c'est soit un rejet au moment de RCPT TO, soit un rebond généré après acceptation de DATA.

Les en-têtes racontent l'histoire

Chaque étape du cycle de vie ajoute des en-têtes au message. Lire les en-têtes de bas en haut reconstitue le voyage :

# Ajouté par le MX récepteur (dernier saut, haut des en-têtes)
Received: from sender.mailertogo.com (198.51.100.42)
by mx1.example.net with ESMTPS id DEF456
for <bob@example.net>;
Tue, 11 Mar 2026 13:15:02 +0000
Authentication-Results: mx1.example.net;
spf=pass smtp.mailfrom=example.com;
dkim=pass header.d=example.com;
dmarc=pass header.from=example.com

# Ajouté par le MTA/MSA d'envoi (premier saut, bas des en-têtes)
Received: from alices-laptop.local (192.0.2.10)
by smtp.example.com with ESMTPSA id ABC123
for <bob@example.net>;
Tue, 11 Mar 2026 13:15:00 +0000
DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=mtg; ...

Les en-têtes Received: sont les miettes de pain. Chacun enregistre l'hôte d'envoi, l'hôte récepteur, le protocole utilisé (ESMTP, ESMTPS pour TLS, ESMTPSA pour authentifié+TLS), un ID de file d'attente et un horodatage. Voir Anatomy of Email Headers pour un guide complet.

Le chemin de la messagerie transactionnelle

Lorsqu'une application envoie du courrier via un service comme Mailer To Go, le cycle de vie est légèrement différent :

  1. L'application appelle l'API. Votre application envoie une requête POST avec le contenu du message, les destinataires et les métadonnées.
  2. Le service construit le message. Il construit la structure MIME, ajoute les en-têtes requis (Date, Message-ID, List-Unsubscribe si applicable) et applique la signature DKIM avec la clé de votre domaine.
  3. Le MTA du service envoie le message. Le message est envoyé depuis l'adresse IP du service vers le MX du destinataire via SMTP sur le port 25, avec STARTTLS.
  4. Le reste est identique. La réception MX, les contrôles d'authentification, le filtrage de contenu, la livraison MDA et la récupération client procèdent tous comme décrit ci-dessus.

La différence clé : votre application ne parle jamais directement SMTP. L'API abstrait la couche d'envoi entière. Mais le message traverse toujours la même infrastructure, subit les mêmes contrôles d'authentification et est évalué par les mêmes filtres anti-spam.

Points clés à retenir

Lectures supplémentaires

Related RFCs