Simple Mail Transfer Protocol
Un article de Wikipédia, l'encyclopédie libre.
7 | Application |
---|---|
6 | Présentation |
5 | Session |
4 | Transport |
3 | Réseau |
2 | Liaison de données |
1 | Physique |
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 vers les serveurs de messagerie électronique.
SMTP est un protocole assez simple (comme son nom l'indique). On commence par spécifier le ou les destinataires d'un message puis, l'expéditeur du 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 telnet sur le port 25.
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 email 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 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.
Sommaire |
[modifier] Principes d'envoi
[modifier] Syntaxe type d'une session SMTP
Le test par telnet mentionné ci-dessus donnerait un dialogue du genre (les messages du serveur sont en rouge') :
220 smtp.xxxx.xxxx SMTP Ready HELO client 250 Hello client, pleased to meet you MAIL FROM:<user@xxxx.xxxx> 250 <user@xxxx.xxxx> ... Sender ok RCPT TO:<user2@yyyy.yyyy> 250 recipient ok. DATA 354 Enter mail, end with "." on a line by itself Subject: Test . 250 Ok QUIT 221 Closing connection Connection closed by foreign host.
[modifier] Les codes retour SMTP
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.
- Code 2: La demande a été exécutée sans erreur.
- Code 4: Indique une erreur temporaire. Ré-essayez plus tard.
- Code 5: La demande n' est pas valide et n' a pas pu être traitée. Vérifiez votre syntaxe.
Pour un descriptif plus précis vous pouvez consulter le lien externe disponible en bas de page.
[modifier] Aspects de sécurité
À la base, une des limitations de SMTP vient de l'impossibilité d'authentifier l'expéditeur. Pour ceci, l'extension SMTP-AUTH a été définie. Malheureusement, l'impossibilité d'imposer largement SMTP-AUTH a rendu ce protocole impuissant face au phénomène du spam.
Le Spam est dû à un certain nombre de facteurs dont : l'implémentation de MTAs ne respectant pas les standards, les failles de sécurité dans les systèmes d'exploitations autorisant les spammeurs à contrôler à distance des PC utilisateur pour leur faire envoyer du spam et enfin un manque d'intelligence de certains MTA.
Afin de lutter efficacement contre ce phénomène, il existe deux approches : modifier profondément SMTP ou même le remplacer ou bien lui adjoindre d'autres protocoles pour combler ses lacunes. Modifier SMTP de manière importante, ou le remplacer complètement, ne paraît pas faisable, à cause de l'importance du réseau de serveurs déjà installé. Malgré tout, des solutions alternatives ont été développées comme Internet Mail 2000 ou ePost.
Une autre approche consiste à créer des systèmes visant à assister les opérations du protocole SMTP. Le groupe de recherche anti-spam (ASRG) de l'IRTF (Internet Research Task Force), travaille actuellement sur l'authentification des courriers électroniques dans le but de fournir un système flexible, léger, et scalable. L'ensemble de ces recherches ont abouti au protocole MARID en 2004 ainsi qu'au protocole DomainKeys Identified Mail en 2006.
[modifier] Voir aussi
- Liens internes
- Liens externes
- RFC 821 - Le RFC « historique » sur SMTP (août 1982)
- RFC 1869 - Définit la possibilité de créer des extensions (Extended SMTP, ou ESMTP) ;
- RFC 3461 - Le Service Extension Delivery Status Notifications (DSNs) de SMTP qui a rendu obsolète le RFC 1891.
- RFC 2821 - The Simple Mail Transfer Protocol qui a rendu obsolète les RFCs 821 et 1869;
- Liste des RFCs
- Le protocole SMTP
- Tester un serveur SMTP
- Les codes d' erreur d' un serveur SMTP