← RFC Reference

Anatomie des en-têtes de courrier électronique

Encyclopédie des Concepts d'E-mail Published March 2026
ELI5: Les en-têtes d'e-mail sont comme l'écriture sur l'extérieur d'une enveloppe, plus un journal de voyage détaillé agrafé dessus. Le `From:` et le `To:` indiquent qui l'envoie et à qui il va. Les en-têtes `Received:` sont des timbres de chaque bureau de poste qui l'a traité. Le `DKIM-Signature:` est un sceau inviolable. Le `Authentication-Results:` est le verdict du dernier bureau de poste sur la légitimité de la lettre.

Chaque champ d'en-tête important dans un message électronique expliqué — ce qu'il signifie, qui le définit et pourquoi il importe. Comprend un exemple réel complètement annoté.

Un exemple complet

Voici les en-têtes d'un vrai message électronique, de haut en bas, tels qu'ils apparaissent dans la boîte de réception d'un destinataire. Nous allons analyser chacun d'eux.

Return-Path: <bounces+alice=example.com@sender.mailertogo.com>
Delivered-To: bob@example.net
Received: from mx1.example.net (mx1.example.net [203.0.113.10])
by final-mda.example.net with LMTP id abc123
for <bob@example.net>; Tue, 11 Mar 2026 14:00:12 +0000
Received: from sender.mailertogo.com (sender.mailertogo.com [198.51.100.42])
by mx1.example.net (Postfix) with ESMTPS id 4F3A21C8
for <bob@example.net>; Tue, 11 Mar 2026 14:00:10 +0000
Authentication-Results: mx1.example.net;
spf=pass (sender SPF authorized) smtp.mailfrom=sender.mailertogo.com;
dkim=pass header.d=example.com header.s=mtg header.b=AuUoFE;
dmarc=pass (policy=reject) header.from=example.com
DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=mtg;
c=relaxed/relaxed; q=dns/txt;
h=from:to:subject:date:message-id:mime-version:content-type;
bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
b=AuUoFEfDxTDkHlLXSZEpZj79LICEps6eda7W3deTVFOk...
From: Alice <alice@example.com>
To: Bob <bob@example.net>
Subject: Your March invoice is ready
Date: Tue, 11 Mar 2026 14:00:00 +0000
Message-ID: <inv-7842@example.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_Part_001"
List-Unsubscribe: <https://example.com/unsub?t=abc123>,
<mailto:unsub@example.com?subject=unsubscribe-abc123>
List-Unsubscribe-Post: List-Unsubscribe=One-Click

Maintenant, parcourons chaque en-tête.

En-têtes d'identité

From

From: Alice <alice@example.com>

L'auteur du message, défini par RFC 5322. C'est ce que le destinataire voit dans son client de messagerie. Il se compose d'un nom d'affichage optionnel (Alice) et d'une adresse de boîte aux lettres (alice@example.com). Les vérifications d'alignement DMARC sont effectuées par rapport au domaine dans cet en-tête.

From n'est pas identique à l'expéditeur d'enveloppe. L'expéditeur d'enveloppe (MAIL FROM en SMTP) peut être complètement différent. L'en-tête From: est défini par l'auteur du message ; l'expéditeur d'enveloppe est défini par le système d'envoi.

To, Cc, Bcc

To: Bob <bob@example.net>

To: et Cc: sont des en-têtes d'affichage — ils indiquent le public visé mais ne contrôlent pas la livraison. Les destinataires réels sont déterminés par les commandes SMTP RCPT TO, qui peuvent inclure des destinataires Bcc non répertoriés dans aucun en-tête. Un message peut avoir un en-tête To: répertoriant des adresses qui ne sont pas dans RCPT TO, et vice versa (c'est ainsi que fonctionne Bcc).

Reply-To

Non affiché dans notre exemple, mais courant. Spécifie où les réponses doivent être dirigées si différentes de From:. Souvent utilisé lorsqu'un message est envoyé à partir d'une adresse no-reply mais que les réponses doivent aller au support :

Reply-To: support@example.com

Sender

Utilisé lorsque l'entité responsable de l'envoi diffère de l'auteur. Si l'assistant d'Alice envoie un message en son nom, les en-têtes pourraient dire From: Alice et Sender: Assistant. La plupart des messages omettent cet en-tête.

Identification du message

Message-ID

Message-ID: <inv-7842@example.com>

Un identifiant unique au niveau mondial pour ce message, généré par l'expéditeur. Le format est <unique-part@domain>. C'est essentiel pour le regroupement, la déduplication et la corrélation des rebonds. Chaque message devrait en avoir un. Si votre système d'envoi ne le défini pas, le premier MTA en générera un — mais vous perdrez alors la capacité à corréler les rebonds avec les messages envoyés spécifiques.

In-Reply-To et References

Utilisés pour le regroupement. In-Reply-To contient le Message-ID du message auquel on répond. References contient la chaîne complète des valeurs Message-ID dans le thread. Les clients de messagerie les utilisent pour regrouper les conversations :

In-Reply-To: <inv-7842@example.com>
References: <inv-7842@example.com> <reply-001@example.net>

Date et sujet

Date

Date: Tue, 11 Mar 2026 14:00:00 +0000

La date et l'heure de la composition du message, définies par l'expéditeur. Le format est spécifié dans RFC 5322. Ce n'est pas l'heure de livraison. Un message peut rester en attente pendant des heures ou des jours avant la livraison. Incluez toujours un décalage de fuseau horaire.

Subject

Subject: Your March invoice is ready

Texte libre résumant le message. Aucune limite de longueur dans la spécification, mais les clients de messagerie la tronquent à des longueurs variables. Conservez-la sous 60 caractères pour un affichage cohérent. Les caractères non-ASCII doivent être codés à l'aide du codage RFC 2047 (par exemple, =?UTF-8?Q?...?=), bien que la plupart des systèmes de messagerie modernes gèrent cela de manière transparente.

La chaîne reçue

Received: from mx1.example.net (mx1.example.net [203.0.113.10])
by final-mda.example.net with LMTP id abc123
for <bob@example.net>; Tue, 11 Mar 2026 14:00:12 +0000
Received: from sender.mailertogo.com (sender.mailertogo.com [198.51.100.42])
by mx1.example.net (Postfix) with ESMTPS id 4F3A21C8
for <bob@example.net>; Tue, 11 Mar 2026 14:00:10 +0000

Chaque serveur qui traite le message ajoute un en-tête Received:. Ils sont lus de bas en haut — le houblon le plus ancien est en bas, le plus récent en haut. Chaque en-tête enregistre :

La chaîne Received est inestimable pour le débogage des retards de livraison. Comparez les horodatages entre les houblons pour trouver où le temps a été perdu. Remarque : les en-têtes Received: du côté de l'expéditeur peuvent être forgés. Ne faire confiance qu'aux en-têtes ajoutés par votre propre infrastructure.

Return-Path

Return-Path: <bounces+alice=example.com@sender.mailertogo.com>

Défini par le MTA final de livraison, cela enregistre l'expéditeur d'enveloppe SMTP (MAIL FROM). C'est où les rebonds sont envoyés. Dans cet exemple, le codage VERP est utilisé — le destinataire original (alice@example.com) est codé dans la partie locale de l'adresse de rebond.

Return-Path n'est pas défini par l'auteur du message ; il est extrait de la session SMTP et ajouté par le serveur de livraison. Il devrait y avoir exactement un en-tête Return-Path dans un message livré.

En-têtes d'authentification

DKIM-Signature

DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=mtg;
c=relaxed/relaxed; q=dns/txt;
h=from:to:subject:date:message-id:mime-version:content-type;
bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
b=AuUoFEfDxTDkHlLXSZEpZj79LICEps6eda7W3deTVFOk...

Ajouté par le serveur d'envoi. Le champ d= identifie le domaine signataire (utilisé pour l'alignement DMARC). Le champ s= est le sélecteur utilisé pour rechercher la clé publique dans le DNS. Le champ h= énumère les en-têtes qui sont signés. Voir Email Authentication Explained pour le processus de vérification complet.

Authentication-Results

Authentication-Results: mx1.example.net;
spf=pass (sender SPF authorized) smtp.mailfrom=sender.mailertogo.com;
dkim=pass header.d=example.com header.s=mtg header.b=AuUoFE;
dmarc=pass (policy=reject) header.from=example.com

Ajouté par le serveur récepteur (RFC 8601). Ceci est le verdict autorité des vérifications d'authentification pour ce message à ce houblon. L'authserv-id (mx1.example.net) identifie quel serveur a effectué la vérification. Il enregistre les résultats SPF, DKIM et DMARC, y compris les identifiants vérifiés.

Note de sécurité : Les en-têtes Authentication-Results forgés de sources externes doivent être supprimés par le MTA de bordure. Ne faire confiance à cet en-tête que lorsqu'il est ajouté par votre propre infrastructure.

En-têtes MIME

MIME-Version

MIME-Version: 1.0

Indique que le message utilise MIME (RFC 2045). C'est toujours 1.0 et devrait être présent sur chaque message. Sans cela, le message est interprété comme du texte US-ASCII simple.

Content-Type

Content-Type: multipart/alternative; boundary="----=_Part_001"

Décrit le type de média du corps du message. Valeurs courantes :

Le paramètre boundary définit le délimiteur entre les parties MIME. Voir RFC 2046 pour les détails.

Content-Transfer-Encoding

Comment le corps est codé pour un transit sûr. Valeurs courantes : 7bit, quoted-printable, base64. Les pièces jointes utilisent base64. Les corps de courrier HTML utilisent généralement quoted-printable pour gérer les caractères non-ASCII tout en restant largement lisibles.

En-têtes de gestion de liste

List-Unsubscribe: <https://example.com/unsub?t=abc123>,
<mailto:unsub@example.com?subject=unsubscribe-abc123>
List-Unsubscribe-Post: List-Unsubscribe=One-Click

RFC 2369 définit List-Unsubscribe, qui fournit une URL et/ou une adresse de messagerie pour la désinscription. RFC 8058 ajoute List-Unsubscribe-Post, permettant la désinscription en un clic directement depuis l'interface utilisateur du client de messagerie sans ouvrir de navigateur. Gmail et d'autres fournisseurs majeurs exigent les deux en-têtes pour le courrier de masse et marketing.

En-têtes que vous ne devriez pas voir (mais parfois vous voyez)

X-Mailer / User-Agent

Identifie le client de messagerie ou le logiciel d'envoi. Parfois utilisé par les filtres de spam comme signal. Les systèmes d'envoi modernes omettent souvent ceci pour réduire la surface d'empreinte.

X-Priority / Importance

En-têtes non-standard qui tentent de définir la priorité du message. La plupart des clients de messagerie les ignorent. Certains filtres de spam traitent les marquages de haute priorité comme un signal négatif.

X-Spam-Status / X-Spam-Score

Ajouté par les systèmes de filtrage du spam (comme SpamAssassin). Non standardisé, mais largement utilisé en interne. Ces ne devraient pas être présents sur le courrier sortant — ils sont ajoutés par l'infrastructure réceptrice.

Ce qui peut mal tourner

Message-ID manquant

Si vous ne définissez pas un Message-ID, le premier MTA en ajoute un. Mais vous perdez la capacité à corréler les messages envoyés avec les rebonds et les notifications de livraison. Générez toujours votre propre Message-ID avant d'envoyer.

Confusion From et expéditeur d'enveloppe

Une source courante de problèmes de délivrabilité. L'en-tête From: affiche alice@example.com, mais l'expéditeur d'enveloppe est bounce@esp.com. SPF valide le domaine ESP, pas votre domaine. Si votre signature DKIM utilise aussi d=esp.com, l'alignement DMARC échoue pour les deux mécanismes. Le correctif : signez avec d=example.com pour que DKIM s'aligne.

En-têtes en double ou conflictuels

RFC 5322 spécifie que certains en-têtes (comme From:, Date:, Message-ID:) doivent apparaître exactement une fois. Les doublons peuvent causer un comportement imprévisible — différents clients de messagerie peuvent choisir des valeurs différentes. Certains filtres de spam traitent les en-têtes From: en double comme suspects.

En-tête Date manquant

Sans un en-tête Date:, le MTA récepteur ou le client de messagerie substituera son propre horodatage, qui peut différer considérablement. Certains filtres de spam pénalisent les messages sans en-tête Date.

Usurpation de la chaîne reçue

N'importe qui peut ajouter de faux en-têtes Received: à un message avant de l'envoyer. Le MTA récepteur ne peut faire confiance qu'aux en-têtes qu'il a lui-même ajoutés. Lors du débogage, commencez par le haut (le plus récent) et travaillez vers le bas, et arrêtez de faire confiance une fois que vous avez atteint la bordure entre votre infrastructure et le monde extérieur.

Points clés à retenir

Lectures complémentaires

Related RFCs