Aller au contenu principal

2. Le modèle SMTP (The SMTP Model)

2.1. Le modèle de base (The Basic Model)

SMTP est un protocole de push : le système d'envoi initie la transaction et pousse le courrier vers le système de réception. Le modèle de base fonctionne comme suit :

  1. Un client SMTP (émetteur) établit une connexion bidirectionnelle avec un serveur SMTP (récepteur)
  2. Le serveur envoie un message de salutation
  3. Le client envoie des commandes SMTP au serveur
  4. Le serveur répond avec des codes de réponse numériques et des messages textuels
  5. Le client transfère le courrier si accepté
  6. La connexion est fermée

Composants du modèle

[Agent Utilisateur] → [Agent de Soumission de Courrier (MSA)]

[Agent de Transfert de Messages (MTA)]
↓ SMTP
[Agent de Transfert de Messages (MTA)]

[Agent de Livraison de Courrier (MDA)]

[Boîte aux lettres]

[Agent d'Accès au Courrier (MAA)]

[Agent Utilisateur]

2.2. Le système d'extension (The Extension System)

2.2.1. Arrière-plan (Background)

SMTP original (RFC 821) avait des capacités limitées. Le mécanisme d'extension SMTP (ESMTP), introduit dans RFC 1869, permet au protocole d'être étendu avec de nouvelles fonctionnalités tout en maintenant la compatibilité ascendante.

2.2.2. Définition et enregistrement des extensions (Definition and Registration of Extensions)

Les extensions SMTP sont annoncées par le serveur en réponse à la commande EHLO (Extended HELLO, HELLO Étendu). Chaque extension a :

  • Un mot-clé (par exemple, "SIZE", "STARTTLS", "8BITMIME")
  • Des paramètres optionnels
  • Une spécification RFC qui définit son comportement

Exemple de réponse EHLO :

C: EHLO client.example.com
S: 250-smtp.example.com
S: 250-SIZE 52428800
S: 250-8BITMIME
S: 250-STARTTLS
S: 250-AUTH PLAIN LOGIN
S: 250 HELP

Cela signifie que le serveur prend en charge :

  • SIZE : Taille maximale de message de 52 428 800 octets
  • 8BITMIME : Contenu MIME 8 bits
  • STARTTLS : Chiffrement TLS
  • AUTH : Authentification (méthodes PLAIN et LOGIN)

2.2.3. Extensions privées (espace de noms X) (Private-Use Extensions (X-namespace))

Les mots-clés d'extension commençant par "X" sont réservés à un usage expérimental et privé. Ces extensions :

  • NE DOIVENT PAS (MUST NOT) être enregistrées auprès de l'IANA
  • NE DOIVENT PAS (MUST NOT) être utilisées sur l'Internet public
  • DOIVENT (MUST) être utilisées uniquement pour des tests ou des déploiements privés

Exemple :

S: 250-XEXAMPLEEXT
S: 250 XPRIVATE-FEATURE

2.3. Terminologie SMTP (SMTP Terminology)

2.3.1. Objets de courrier (Mail Objects, MO)

Un objet de courrier contient :

  • Enveloppe : Informations de routage (MAIL FROM, RCPT TO)
  • Contenu : Les en-têtes et le corps du message

Important : L'enveloppe et les en-têtes peuvent contenir des adresses différentes !

2.3.2. Utilisateurs et boîtes aux lettres (Users and Mailboxes)

  • Utilisateur : Un destinataire de courrier humain ou processus
  • Boîte aux lettres : Un emplacement de stockage conceptuel pour le courrier
  • Adresse de boîte aux lettres : Format local-part@domain
    • local-part : Identifie la boîte aux lettres (max 64 caractères)
    • domain : Identifie le système hôte (nom de domaine ou littéral IP)

Exemples :

  • [email protected] - adresse standard
  • [email protected] - avec point dans la partie locale
  • user@[192.0.2.1] - littéral d'adresse IPv4
  • user@[IPv6:2001:db8::1] - littéral d'adresse IPv6

2.3.3. Hôtes (Hosts)

Un hôte est un système informatique qui exécute des logiciels de serveur ou de client SMTP. Les hôtes sont identifiés par :

  • Noms de domaine : mail.example.com
  • Adresses IP : 192.0.2.1 ou 2001:db8::1

2.3.4. Serveurs et clients (Servers and Clients)

  • Serveur SMTP : Écoute les connexions entrantes, reçoit le courrier
  • Client SMTP : Initie les connexions, envoie le courrier

Un système peut agir à la fois comme client et serveur :

  • Serveur lors de la réception de courrier
  • Client lors du transfert de courrier

2.3.5. Commandes et réponses (Commands and Replies)

Commandes : Lignes textuelles ASCII envoyées par le client au serveur

  • Format : COMMAND [arguments]<CRLF>
  • Exemples : EHLO, MAIL FROM, RCPT TO, DATA, QUIT

Réponses : Codes numériques à trois chiffres plus messages textuels

  • Format : code message<CRLF>
  • Exemples : 250 Ok, 550 User unknown

2.3.6. Transférer le chemin, chemins inversés et enveloppes (Forward-path, Reverse-path, and Envelopes)

  • Chemin inversé (Reverse-path) : Adresse de l'expéditeur (MAIL FROM)
  • Chemin de transfert (Forward-path) : Adresse du destinataire (RCPT TO)
  • Enveloppe : Combine le chemin inversé et le(s) chemin(s) de transfert

Exemple :

MAIL FROM:<[email protected]>     (chemin inversé)
RCPT TO:<[email protected]> (chemin de transfert)
RCPT TO:<[email protected]> (chemin de transfert)

2.3.7. Agents de soumission et agents de transfert de messages (Submission Agents and Message Transfer Agents)

  • Agent de soumission de courrier (MSA) : Accepte le courrier des agents utilisateurs

    • Port 587 (RFC 4409)
    • Requiert généralement une authentification
    • Applique les politiques de soumission
  • Agent de transfert de messages (MTA) : Transfère le courrier entre systèmes

    • Port 25
    • Gère le routage et la livraison
    • Gère les files d'attente et les nouvelles tentatives

2.3.8. Agents d'accès aux messages (Message Access Agents)

Les MAAs permettent aux utilisateurs de récupérer le courrier :

  • POP3 (Post Office Protocol) : Télécharge et supprime
  • IMAP (Internet Message Access Protocol) : Accès distant aux boîtes aux lettres

Ces protocoles sont séparés de SMTP et ne sont pas couverts dans ce document.

2.3.9. Origines et cibles du courrier (Mail Originators and Targets)

  • Origine (Originator) : Système ou utilisateur qui crée le courrier
  • Cible (Target) : Destinataire final du courrier

2.3.10. Agents de traitement des messages et listes de diffusion (Message Processing Agents and Mailing Lists)

Les agents de traitement des messages peuvent :

  • Étendre les listes de diffusion
  • Appliquer des filtres
  • Modifier le contenu (par exemple, ajouter un pied de page de liste)
  • Archiver les messages

2.3.11. Passerelles (Gateways)

Les passerelles connectent SMTP à d'autres systèmes de courrier :

  • X.400
  • UUCP
  • Systèmes propriétaires

Les passerelles traduisent les protocoles, formats et adresses.

2.4. Livraison générale de courrier (General Mail Delivery)

Le processus de livraison de courrier implique généralement plusieurs étapes :

  1. Composition : L'utilisateur rédige le courrier avec un UA
  2. Soumission : UA soumet au MSA (port 587)
  3. Routage : MSA transfère au MTA approprié
  4. Transfert : Le courrier peut traverser plusieurs MTAs
  5. Livraison : Le MTA final livre au MDA
  6. Stockage : MDA stocke dans la boîte aux lettres
  7. Récupération : L'utilisateur récupère via MAA (POP3/IMAP)

Chaque saut utilise SMTP entre MTAs, tandis que d'autres protocoles gèrent la soumission et la récupération.