SMTP (Simple Mail Transfer Protocol) est le protocole Internet standard pour la transmission et le relais d'e-mails sur Internet. Défini dans la RFC 5321, SMTP gère l'enveloppe de transmission et le relais des messages, pas la récupération des boîtes aux lettres — celle-ci est gérée par IMAP ou POP3.
Fonctionnement
SMTP fonctionne sur TCP, généralement sur le port 25 pour le relais serveur-à-serveur entre agents de transfert de courrier (MTA). Un client ouvre une connexion, envoie EHLO pour s'identifier, puis émet des commandes d'enveloppe : MAIL FROM:<expéditeur>, RCPT TO:<destinataire> (un ou plusieurs destinataires), et DATA (les en-têtes et le corps du message). Le serveur répond avec des codes d'état à trois chiffres (250 = OK, 550 = boîte aux lettres indisponible, 421 = service indisponible). Le message est relayé de saut en saut entre MTA jusqu'à atteindre le serveur de courrier du destinataire.
Pour la soumission client-à-serveur (envoi authentifié par les utilisateurs), la RFC 6409 spécifie le port 587 avec authentification obligatoire. Le port 465 est utilisé pour la soumission TLS implicite. Les deux supportent STARTTLS (RFC 3207) pour mettre à niveau les connexions en texte brut vers TLS chiffré en cours de session.
Exemple
Un utilisateur envoie un e-mail de [email protected] à [email protected] : le client de courrier se connecte à smtp.example.com:587, s'authentifie, envoie MAIL FROM:<[email protected]>, RCPT TO:<[email protected]>, et les données du message, puis le MTA sortant du fournisseur le relaye sur le port 25 (avec TLS) vers le serveur MX d'example.org pour la livraison.
Sécurité et délivrabilité
SMTP est souvent associé à SPF, DKIM et DMARC pour prévenir l'usurpation d'identité et améliorer la délivrabilité des e-mails.
WarningSMTP est unidirectionnel (envoi uniquement) et ne peut pas télécharger ou synchroniser les e-mails — la réception d'e-mails nécessite une configuration IMAP ou POP3 séparée. De nombreux FAI bloquent le port 25 sortant pour prévenir le spam, donc l'authentification et la soumission sur le port 587 ou 465 sont généralement requises.