Site icon Mailtrap

Comprendre le SMTP – Le Protocole Derrière la Livraison des Emails

This is a cover image for an article that explains SMTP Protocol in detail

Le SMTP est un protocole fondamental utilisé dans la communication par email. Il est probablement derrière les emails que nous envoyons et recevons chaque jour. Bien que ce soit un protocole simple, il implique néanmoins de multiples composants et beaucoup de détails.

Dans cet article de blog, nous allons examiner de plus près le SMTP et explorer ses principales caractéristiques et fonctionnalités.

Qu’est-ce que le SMTP ?

SMTP ou Simple Mail Transfer Protocol est un protocole de couche d’application qui permet de transférer des emails entre différents serveurs et réseaux informatiques. Il le fait en définissant les règles de communication.

Le modèle original a été introduit en 1982. Selon le RFC 821, l’utilisateur crée la demande de connexion. En réponse, le sender-SMTP initie une connexion bidirectionnelle avec le receiver-SMTP. En termes modernes, ce sont respectivement le client SMTP et le serveur SMTP. Le client SMTP et le serveur SMTP communiquent par commandes et réponses (plus d’informations à ce sujet plus loin), similaires à des conversations dans la vie réelle.

Le RFC 821 a également défini le modèle d’utilisation du SMTP. Vous pouvez voir le schéma dans l’illustration ci-dessous.

Une fois la connexion établie, le client SMTP transfère les en-têtes, les destinataires, les messages (y compris les pièces jointes) et toutes les données au serveur SMTP étape par étape. Lorsque la transmission est terminée, la connexion sera fermée.

Par définition, la forme complète du SMTP est lorsque les clients SMTP supportent le relai, les files d’attente d’emails et les fonctions d’adresse alternative. C’est ce qu’on appelle un SMTP entièrement fonctionnel. Si ces fonctions ne sont pas supportées, le SMTP n’est pas entièrement fonctionnel. Dans ce cas, les RFC pertinents recommandent d’utiliser le protocole de soumission de messages à la place.

Gardez en tête que le SMTP peut uniquement envoyer des messages simples, c’est-à-dire du texte brut sans pièces jointes. Nous utilisons un protocole séparé, Multipurpose Internet Mail Extensions, MIME (RFC 2045), pour envoyer des pièces jointes, des corps de messages dépassant les limites de caractères imposées par le SMTP, des messages dans des langues autres que l’anglais, et des formats HTML/CSS.

MIME est un protocole d’extension – il améliore les capacités du SMTP, mais il ne fonctionne pas séparément. La plupart des services d’email modernes sont compatibles avec MIME.

Qu’est-ce que l’ESMTP ?

ESMTP ou Extended Simple Mail Transfer Protocol a été introduit pour la première fois en 1995 dans le RFC 1869. L’objectif était de créer une structure unifiée pour toutes les futures extensions. Les extensions visent à ajouter des fonctionnalités qui ne sont pas intégrées par défaut au SMTP. Le RFC 5321 a consolidé et rendu obsolète les documents précédents.

ESMTP utilise une nouvelle commande EHLO pour initier la connexion. Il permet également l’utilisation de paramètres supplémentaires dans les commandes MAIL FROM et RCPT TO du SMTP. En conséquence, l’ESMTP supprime la limite de 512 caractères pour les paramètres supplémentaires et ne la laisse que dans les cas où des paramètres supplémentaires ne sont pas définis.

Aujourd’hui, ESMTP et SMTP sont largement utilisés. Si la commande EHLO n’est pas supportée, la connexion devrait revenir au SMTP et à sa commande HELO.

En parlant d’extensions, nous devrions également mentionner l’extension SMTP-AUTH, qui ajoute une étape d’authentification au processus. Cela signifie que le client souhaitant envoyer un email doit se connecter au serveur de messagerie en utilisant son nom d’utilisateur et son mot de passe. Bien que l’authentification SMTP ne protège pas contre l’usurpation, elle est une mesure de sécurité importante.

Qu’est-ce que le SMTPS ?

SMTPS ou Simple Mail Transfer Protocol Secure est une méthode qui sécurise le SMTP avec l’aide des protocoles TLS (Transport Layer Security) ou SSL (Secure Sockets Layer). Ces couches de sécurité chiffrent les messages pour empêcher les spammeurs ou les usurpateurs de voir le contenu des emails.

Bien que le SSL soit encore largement utilisé, le TLS (plus précisément, sa version 1.3) est considéré comme le protocole le plus sûr pour le chiffrement des emails. Pour plus d’informations sur la sécurité SMTP, lisez notre article de blog dédié.

Types de SMTP

Le RFC 5321 distingue quatre types de systèmes SMTP :

Infrastructure du SMTP

Comme nous l’avons vu plus haut, les principaux composants du modèle SMTP sont l’utilisateur, le Sender-SMTP (client SMTP) et le Receiver-SMTP (serveur SMTP). Cependant, les agents d’email participent également au processus d’envoi et de réception des emails. De plus, le modèle SMTP inclut le relais SMTP dans des scénarios spécifiques. Voyons ce que chacun d’eux signifie ainsi que leur fonction.

Serveur SMTP

Le serveur SMTP est une application pour envoyer des emails. Il reçoit des emails de fournisseurs de services de messagerie (Gmail, Yahoo!, Apple Mail, AOL, etc.) et les transfère à d’autres serveurs. Ceux-ci peuvent être d’autres serveurs SMTP ou un serveur de messagerie entrant.

Le serveur de messagerie SMTP peut être local ou basé sur le cloud. Un serveur SMTP local est une bonne option pour ceux qui ne veulent pas dépendre des serveurs tiers. D’un autre côté, un serveur SMTP hébergé dans le cloud nécessite moins d’efforts et peut être plus sécurisé dans la plupart des cas.

Agents d’Email

Il y a quatre agents principaux :

Notez que les limites de responsabilités entre les agents peuvent être floues par moments, mais elles restent utiles à des fins illustratives. Dans le monde réel, les MUAs, les MTAs et les serveurs SMTP sont les composants les plus essentiels de la livraison des emails.

Relais SMTP

Le relais SMTP est le processus de transmission des emails entre les serveurs SMTP hébergés sur différents domaines (de @gmail.com à @yahoo.com, par exemple).

Les MTAs vérifient si les noms des domaines sont les mêmes. Si c’est le cas, le relais SMTP ne se déclenchera pas. En revanche, si les domaines ne sont pas les mêmes, les MTAs interrogeront les enregistrements du Domain Name System (DNS) pour trouver l’adresse IP du domaine du destinataire. Une fois l’adresse IP localisée, ils achemineront le message entre un ou plusieurs MTAs (relais SMTP) jusqu’à ce qu’il soit finalement livré au serveur SMTP du destinataire.

Comment fonctionne le SMTP ?

Une session SMTP commence lorsque le client ouvre une connexion Transmission Control Protocol (TCP, parfois appelée TCP/IP) avec le serveur SMTP. Le serveur répond par un message d’ouverture, exprimé par le code 250. Ce processus est souvent appelé une poignée de main SMTP.

Le client envoie ensuite une commande HELO (EHLO pour ESMTP) et s’identifie. Il suit souvent la commande avec le nom du domaine ou l’adresse IP. En termes non techniques, le client dit : “Bonjour, je m’appelle John le Client, j’envoie un email de gmail.com, et mon IP est 192.0.2.0”. Le serveur répondra à nouveau par le code 250.

Ensuite, l’étape de transfert de l’email commencera. Le contenu de l’email sera transféré étape par étape avec les commandes MAIL FROM (john@gmail.com), RCPT TO (oliver@yahoo.com), et DATA (‘Hey, comment ça va?’). Si le serveur accepte la transaction, le client transférera les en-têtes de l’email. Il est nécessaire d’utiliser un indicateur de fin de ligne (point ‘.’) une fois que tout a été transmis.

Le serveur répondra avec le code 250 si la transaction est réussie. Le client initiera la terminaison de la connexion SMTP avec la commande QUIT, et le serveur fermera le canal de transmission avec le code 221.

Ceci est, bien sûr, un exemple simplifié sans relais SMTP, transfert, passerelles, ou codes d’erreur. Pour plus d’informations à ce sujet, veuillez consulter le RFC 5321.

Qu’en est-il de la file d’attente SMTP ?

La file d’attente SMTP est un ensemble d’emails en attente de livraison. Les emails sont généralement mis en file d’attente lorsque le serveur SMTP récepteur n’est pas prêt à accepter les emails, ou lorsque vous envoyez de grands volumes en même temps. Lorsque le serveur répond, les emails seront livrés un par un. La file d’attente SMTP est une sorte de tampon entre vous et le serveur récepteur.

Commandes et réponses SMTP

Nous avons mentionné certaines des commandes et réponses SMTP dans l’exemple ci-dessus. Cependant, lors de l’envoi d’emails avec SMTP, vous pouvez rencontrer d’autres commandes et réponses.

En général, les commandes sont des chaînes de caractères alphabétiques se terminant par <CRLF>. Si des paramètres supplémentaires suivent, les caractères se termineront par <SP>. 

Les réponses sont des codes de terminaison numériques qui peuvent être positifs ou négatifs. En règle générale, elles sont suivies d’une chaîne de texte.

Les commandes et les réponses sont composées d’un ensemble de caractères ASCII.

Commandes 

Syntax: "EHLO" SP ( Domain / address-literal ) CRLF ou "HELO" SP Domain CRLF

Syntax: MAIL FROM:<reverse-path> [SP <mail-parameters> ] <CRLF>

Syntax: RCPT TO:<forward-path> [ SP <rcpt-parameters> ] <CRLF>

Syntax:  "DATA" CRLF

Syntax: "VRFY" SP String CRLF

Syntax: "EXPN" SP String CRLF

Syntax: "NOOP" [ SP String ] CRLF

Syntax: "QUIT" CRLF

Syntax: "HELP" [ SP String ] CRLF

Syntax: "RSET" CRLF

Le protocole SMTP peut également supporter certaines commandes ESMTP, telles que STARTTLS, AUTH, et d’autres.

Résponses 

Réponses positives courantes

Réponses négatives ou codes d’erreur

Ports SMTP

Les ports SMTP sont des points de communication qui aident à identifier l’emplacement exact des adresses internet. Les ports les plus courants utilisés avec SMTP sont 25, 465, 587, et 2525.

Comparaison entre SMTP, IMAP et POP3

A part SMTP, les protocoles d’email les plus courants sont IMAP et POP3. SMTP est un serveur de messagerie sortant utilisé pour envoyer et livrer des emails. IMAP et POP3 sont des protocoles d’accès aux messages utilisés pour récupérer les messages entrants depuis le serveur de messagerie.

IMAP, Internet Message Access Protocol, est un protocole qui se connecte au serveur et télécharge les messages sur demande. Les messages ne seront pas supprimés une fois la connexion terminée. Avec IMAP, les utilisateurs peuvent accéder à leurs emails depuis n’importe quel ordinateur ou appareil.

POP3 ou Post Office Protocol 3 se connecte également au serveur, mais il télécharge tous les messages reçus. Une fois cela terminé, il supprimera tous les emails du serveur. Contrairement à IMAP, POP3 est dépendant de l’appareil.

Plus d’informations sur les différences entre ces protocoles sont disponibles ici ainsi que dans notre vidéo dédiée.

Comment envoyer des emails avec SMTP

L’un des principaux avantages du SMTP est qu’il permet d’envoyer facilement des emails depuis différentes applications ou appareils. La plupart des langages de programmation permettent aux utilisateurs de router les emails sortants via SMTP soit nativement, soit avec l’aide de différentes bibliothèques. Contrairement à l’API Web (ou Email API), l’intégration SMTP ne nécessite pas de compétences avancées en codage.

Vous aurez besoin d’identifiants SMTP fonctionnels (tels que l’hôte, le port, le nom d’utilisateur, le mot de passe et le chiffrement) et du langage de programmation pertinent pour accomplir cette tâche. Vous pouvez consulter notre article de blog récent pour plus de détails à ce sujet.

SMTP en tant que service – test et envoi

Le SMTP (ou, plus précisément, le serveur SMTP) est fourni aux utilisateurs en tant que service pour deux principaux objectifs – le test et l’envoi.

En termes de test, le service SMTP implique un serveur Fake SMTP qui capture les emails sortants. De cette façon, les emails n’arrivent pas les véritables boîtes de réception, créant un environnement sûr pour les tests.

En ce qui concerne l’envoi d’emails, le service SMTP est synonyme de service de relais SMTP. Les fournisseurs d’email ont leurs propres serveurs SMTP qui permettent aux utilisateurs d’envoyer des emails marketing ou transactionnels.

Idéalement, ces deux services SMTP peuvent être combinés en un seul outil robuste tel que Mailtrap.

Mailtrap est une Plateforme d’Email Delivery qui combine Email Testing et Email API/SMTP. C’est une infrastructure complète d’emails qui permet aux utilisateurs de tester le serveur SMTP, d’envoyer des emails avec, et de surveiller leur performance avec des analyses exploitables.

Email Testing est une Sandbox qui capture tout le trafic SMTP dans une boîte de réception virtuelle et élimine les risques de spammer les utilisateurs. Vous pouvez facilement inspecter et déboguer vos emails en staging avec des vérifications HTML/CSS ou anti-spam, consulter des informations techniques, ou utiliser des fonctionnalités de transfert manuel/automatique. Email Testing fournit plusieurs boîtes de réception pour différents projets et étapes de produit.

Email API/SMTP est une infrastructure créée pour avoir des taux de délivrabilité d’emails élevés. Avec son Email API et son SMTP Service, l’intégration est fluide et sans effort. Tout ce que vous devez faire, c’est vérifier votre domaine et choisir la méthode d’intégration préférée. Une fois cela fait, vous pouvez joindre les boîtes de réception des destinataires en quelques secondes.

Email API/SMTP dispose également d’analyses approfondies exploitables avec des rapports détaillés et des tableaux de bord avec une vue d’ensemble qui vous permettent de rester au top de vos métriques de délivrabilité.

Quitter la version mobile