Wiki Informatique - Protocole:SMTP

Protocole:SMTP

On this page… (hide)

  1.   1.  Codes de retour SMTP
    1.   1.1  Sécurité et Anti SPAM
  2.   2.  SPF, DKIM et DMARC
  3.   3.  Antispam
  4.   4.  Blocage du port 25
    1.   4.1  RFC associés

SMTP = Simple Mail Transfert Protocol (Protocole simple de transfert de mail)

Il est utilisé pour transférer le courrier électronique (courriel) vers les serveurs de messagerie électronique.

SMTP est un protocole assez simple, on commence par spécifier l’expéditeur du message, puis le ou les destinataires d’un message, puis, en général après avoir vérifié leur existence, le corps du message est transféré. Il est possible de tester un serveur SMTP en utilisant la commande telnet sur le port 25 d’un serveur distant.

Le SMTP commence à être largement utilisé au début des années 1980. Il est alors un complément à l’UUCP, celui-ci étant plus adapté pour le transfert de courriers électroniques entre des machines dont l’interconnexion est intermittente. Le SMTP, de son côté, fonctionne mieux lorsque les machines qui envoient et reçoivent les messages sont interconnectées en permanence.

Le logiciel Sendmail est l’un des premiers, sinon le premier serveur de messagerie électronique à utiliser SMTP. Depuis, la plupart des clients de messagerie peuvent utiliser SMTP pour envoyer les messages. Certains nouveaux serveurs sont apparus, comme Postfix, Qmail de Daniel J. Bernstein, Exim et Exchange de Microsoft.

Comme le protocole utilisait du texte en ASCII (7 bits), il ne fonctionnait pas pour l’envoi de n’importe quels octets dans des fichiers binaires. Pour pallier ce problème, des standards comme MIME ont été développés pour permettre le codage des fichiers binaires au travers de SMTP. Aujourd’hui, la plupart des serveurs SMTP acceptent le MIME sur 8 bits, ce qui permet de transférer des fichiers binaires presque aussi facilement que du texte simple.

SMTP utilise TCP pour le transfert des données.

SMTP ne permet pas de récupérer à distance des courriels arrivés dans une boîte aux lettres sur un serveur. Les standards Post Office Protocol (POP) et IMAP ont été créés dans ce but.

Les serveurs utilisent les enregistrements MX des serveurs DNS pour acheminer le courrier.

Les administrateurs de serveur peuvent choisir si les clients utilisent le port TCP 25 (SMTP) ou le port 587 (submission, ou soumission en français), tel que formalisé dans la RFC 6409 (RFC 2476 précédemment), pour relayer le courrier sortant vers un serveur de messagerie. Les spécifications et de nombreux serveurs acceptent les deux. Bien que certains serveurs ont longtemps pris en charge le port historique 465 (SMTPS, aussi appelé “submissions”) pour le SMTP sécurisé, en violation des spécifications jusqu’à fin 2017, il est préférable d’utiliser les ports standard et les commandes ESMTP (Extended SMTP) standard selon la RFC 3207, si une session sécurisée doit être utilisée entre le client et le serveur. Cependant début 2018, la RFC 8314 a finalement affecté officiellement le port 465 au protocole SMTP avec TLS implicite.

1.  Codes de retour SMTP

Comme on le constate dans l’exemple ci-dessus, il existe une syntaxe précise pour envoyer les messages et une série de codes retour sur trois chiffres pour indiquer le statut de la demande. Le premier chiffre du code retour indique le statut global de la demande, les deux autres chiffres donnent le détail du statut :

  • code 2 : la demande a été exécutée sans erreur ;
  • code 3 : la demande est en cours d’exécution ;
  • code 4 : indique une erreur temporaire ;
  • code 5 : la demande n’est pas valide et n’a pas pu être traitée.

Messages les plus courants :

  • 220 : Premier code envoyé par le serveur lorsque la connexion s’est effectuée avec succès.
  • 250 : Confirmation de commande acceptée.
  • 354 : Réponse à la commande DATA. Le serveur attend les données du corps du message. Le client indique la fin du message par un point seul sur une ligne : <CR><LF>.<CR><LF>
  • 421 : Échec temporaire au niveau de la connexion. Il se peut que le serveur soit surchargé, qu’il limite le nombre de connexions en provenance d’une même adresse IP ou que le service soit indisponible.
  • 452 : Échec temporaire : nombre de destinataires maximum atteint.
  • 550 : Échec permanent. La boîte aux lettres n’existe pas ou l’adresse du destinataire est invalide.
  • 554 : Échec permanent au niveau de la connexion : utilisé à la place du code 220 pour les hôtes sur liste noire

1.1  Sécurité et Anti SPAM

2.  SPF, DKIM et DMARC

3.  Antispam

4.  Blocage du port 25

En 2006, l’AFA recommande aux fournisseurs d’accès internet (FAI) de bloquer les paquets TCP/IP sortant à destination du port 25. L’idée développée est qu’« un utilisateur résidentiel ne devrait pouvoir émettre ses messages électroniques que via le serveur de son fournisseur de messagerie électronique. »

À l’époque entre 50 % et 80 % du spam était généré par des ordinateurs infectés.

En France et au Canada, les principaux FAI ont suivi cette recommandation : Orange, Bell, Videotron et CCAPcable bloquent le port 25 depuis juin 2007, Free depuis décembre 2006 (c’est une option, le blocage peut être désactivé), AOL depuis 2003.

La pratique aujourd’hui est la soumission du message par l’utilisateur au serveur de messagerie en utilisant du SMTP authentifié (port 587). Le port 25 sert uniquement aux serveurs SMTP entre eux.

4.1  RFC associés

  • RFC 1870 - SMTP
  • RFC 2505 – Anti-Spam Recommendations for SMTP MTAs
  • RFC 2920 – SMTP Service Extension for Command Pipelining
  • RFC 3030 – SMTP Service Extensions for Transmission of Large and Binary MIME Messages
  • RFC 3207 – SMTP Service Extension for Secure SMTP over Transport Layer Security
  • RFC 3461 – Simple Mail Transfer Protocol (SMTP) Service Extension for Delivery Statut Notifications (DSNs)
  • RFC 3463 – Enhanced Mail System Statut Codes
  • RFC 3464 – An Extensible Message Format for Delivery Statut Notifications
  • RFC 3834 – Recommendations for Automatic Responses to Electronic Mail
  • RFC 4954 – SMTP Service Extension for Authentication
  • RFC 5068 – Email Submission Operations: Access and Accountability Requirements
  • RFC 5321 – Simple Mail Transfer Protocol
  • RFC 5322 – Internet Message Format
  • RFC 6409 – Message Submission for Mail
  • RFC 6522 – The Multipart/Report Media Type for the Reporting of Mail System Administrative Messages
  • RFC 6530 – Overview and Framework for Internationalized Email
  • RFC 8314 – Use of TLS for Email Submission/Access


Catégorie(s) : Mail | Protocole