SMTP (Simple Mail Transfer Protocol)

Définition

Le SMTP (Simple Mail Transfer Protocol, RFC 5321) est le protocole standard pour l’envoi et le routage d’emails sur Internet. C’est un protocole de type store-and-forward qui délivre l’email du destinataire au serveur de messagerie du destinataire.

Le SMTP gère uniquement la livraison d’email (envoi). La réception et le stockage d’email utilisent POP3 ou IMAP.

Flux SMTP

Expéditeur                        MTA de l'expéditeur     MTA du destinataire     MDA du destinataire
  │                                   │                       │                       │
  │  (composition de l'email)          │                       │                       │
  │── SMTP (port 587/TLS) ──────────▶│                       │                       │
  │                                   │── Requête MX DNS ──────▶│                       │
  │                                   │                       │                       │
  │                                   │── SMTP (port 25) ────▶│                       │
  │                                   │                       │── POP3/IMAP ───────▶│
  │                                   │                       │                       │ (récupération de l'email)

Ports SMTP

|| Port | Protocole | Cas d’utilisation | ||——|———–|——————-| || 25 | SMTP (non chiffré) | Relais serveur-à-serveur | || 465 | SMTPS (TLS) | SMTP sur TLS implicite (déprécié mais encore utilisé) | || 587 | SMTP + STARTTLS | Soumission client-vers-serveur (recommandé) | || 2525 | SMTP (non chiffré) | Alternative quand le port 25 est bloqué |

Commandes SMTP (EHLO/HELO)

Client : EHLO example.com
Serveur : 250 mail.example.com
        250-SIZE 35882577
        250-STARTTLS
        250-AUTH PLAIN LOGIN
        250-AUTH=PLAIN LOGIN
        250 ENHANCEDSTATUSCODES

Client : AUTH LOGIN
Serveur : 334 VXNlcm5hbWU6
Client : base64(username)
Serveur : 334 UGFzc3dvcmQ6
Client : base64(password)
Serveur : 235 2.7.0 Authentication successful

Client : MAIL FROM:<sender@example.com>
Serveur : 250 2.1.0 OK

Client : RCPT TO:<recipient@example.com>
Serveur : 250 2.1.5 OK

Client : DATA
Serveur : 354 End data with <CR><LF>.<CR><LF>
Client : Subject: Hello
From: sender@example.com
To: recipient@example.com

Hello!
.
Serveur : 250 2.0.0 OK: queued as ABC123

Authentification SMTP (SMTP AUTH)

|| Mécanisme | Description | Sécurité | ||———–|————-|———-| || PLAIN | Nom d’utilisateur + mot de passe en base64 | Nécessite TLS | || LOGIN | Variante de Microsoft de PLAIN | Nécessite TLS | || CRAM-MD5 | Challenge-response avec MD5 | Pas besoin de TLS (déprécié) | || OAuth 2.0 | Authentification par jeton | Moderne, recommandé | || XOAUTH2 | Extension OAuth 2.0 de Google | Spécifique à Google |

Sécurité email (couche SMTP)

|| Protocole | Objectif | ||———–|———| || STARTTLS | Mettre à niveau le SMTP en clair vers le chiffrement TLS | || DKIM | Signer les emails avec une clé privée ; vérifier avec un enregistrement DNS public | || SPF | Enregistrement DNS listant les IPs d’envoi autorisées | || DMARC | Politique de gestion des échecs SPF/DKIM | || TLS | Chiffrer les connexions SMTP |

Exemple d’enregistrement SPF

example.com.  IN  TXT  "v=spf1 mx a:mail.example.com ip4:192.168.1.0/24 -all"

|| Balise | Signification | ||——–|————-| || v=spf1 | Version SPF | || mx | Autoriser les serveurs MX du domaine | || a | Autoriser l’IP de l’enregistrement A du domaine | || ip4:192.168.1.0/24 | Autoriser cette plage d’IP | || -all | Hard fail (rejeter tous les autres) |

Exemple d’enregistrement DKIM

default._domainkey.example.com.  IN  TXT  "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4..."

Exemple d’enregistrement DMARC

_dmarc.example.com.  IN  TXT  "v=DMARC1; p=reject; rua=mailto:dmarc@example.com; pct=100; adkim=s; aspf=s"

|| Balise | Signification | ||——–|————-| || p=reject | Rejeter les emails en échec | || rua=mailto:... | Email de rapport agrégé | || pct=100 | Appliquer à 100% des emails | || adkim=s | Alignement DKIM strict | || aspf=s | Alignement SPF strict |

SMTP dans l’infrastructure

|| Composant | Rôle SMTP | ||———–|———–| || Serveur de messagerie | Postfix, Exim, Sendmail (MTA) | || Relai de messagerie | Envoyer des emails via un relai externe (SendGrid, Mailgun) | || Surveillance | Surveiller la file d’attente SMTP, les taux de livraison | || Sécurité email | SPF, DKIM, DMARC, TLS | || CI/CD | SMTP pour les emails de notification |

Termes associés

  • Imap
  • POP3 — POP3 récupère l’email (le SMTP l’envoie)
  • Tls — filtrage du trafic SMTP (port 25/587)
  • Waf

Références