Simple Mail Transfer Protocol | |
Fonction | Envoi de courriels |
---|---|
Sigle | SMTP |
Port | 25 |
modifier |
Pile de protocoles | ||||||||||||||
| ||||||||||||||
Modèle Internet Modèle OSI |
Le Simple Mail Transfer Protocol (littéralement « Protocole simple de transfert de courrier »), généralement abrégé SMTP, est un protocole de communication utilisé pour transférer le courrier électronique (courriel) vers les serveurs de messagerie électronique.
SMTP est un protocole assez simple (comme son nom l'indique). 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 assez facile 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 (qui accomplit également d'autres fonctions).
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.
Comme vous pouvez le constater sur l'exemple ci-dessus, il existe une syntaxe précise pour envoyer les messages et une série de codes retour pour indiquer le statut de la demande.
Pour vous repérer rapidement vous pouvez, à l'aide du premier chiffre du code retour, avoir le statut global de la demande. Les 2 autres chiffres vous donneront le détail du statut.
Pour un descriptif plus précis vous pouvez consulter le lien externe disponible en bas de page.
Le test par telnet mentionné ci-dessus donnerait un dialogue du genre (les messages du serveur sont en rouge) :
telnet smtp.xxxx.xxxx 25 Connected to smtp.xxxx.xxxx. 220 smtp.xxxx.xxxx SMTP Ready EHLO client 250-smtp.xxxx.xxxx 250-PIPELINING 250 8BITMIME MAIL FROM:250 Sender ok RCPT TO: 250 Recipient ok. DATA 354 Enter mail, end with "." on a line by itself Subject: Test Corps du texte . 250 Ok QUIT 221 Closing connection Connection closed by foreign host.