- Simple Mail Transfer Protocol
-
Simple Mail Transfer Protocol Fonction Envoi de courriels Sigle SMTP Port 25 (sans authentification)
587 (avec authentification)RFC 1982: RFC 821
2008: RFC 5321modifier Pile de protocoles 7. Application 6. Présentation 5. Session 4. Transport 3. Réseau 2. Liaison 1. Physique Modèle Internet
Modèle OSILe 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.
Sommaire
Principes d'envoi
Le transfert de messages entre serveurs de messagerie électronique se fait généralement sur le port 25 qui est le port standard enregistré auprès de l'IANA. Les serveurs utilisent les enregistrements MX des serveurs DNS pour acheminer le courrier.
Les clients de messagerie utilisaient aussi le port 25 (smtp) pour soumettre des messages en utilisant le protocole SMTP. Mais la nécessité de mieux contrôler les envois des clients, en particulier par l'authentification, a conduit à l'attribution du port 587 (submission)[1].
Syntaxe type d'une session ESMTP
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 HELO client 250-smtp.xxxx.xxxx 250-PIPELINING 250 8BITMIME MAIL FROM: <auteur@yyyy.yyyy> 250 Sender ok RCPT TO: <destinataire@xxxx.xxxx> 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.
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 3: La demande est en cours d'exécution.
- 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.
Sécurité et problème du spam
Article détaillé : Anti-spam.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 logiciels Mail Transfer Agent (MTA) 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, extensible, et évolutif. L'ensemble de ces recherches ont abouti au protocole MARID en 2004 ainsi qu'au protocole DomainKeys Identified Mail en 2006.
Notes et références
- RFC 4409 (2006), Message Submission for Mail
Voir aussi
Liens internes
Liens externes
- RFC 1870 – SMTP Service Extension for Message Size Declaration (оbsoletes: RFC 1653)
- RFC 2505 – Anti-Spam Recommendations for SMTP MTAs (BCP 30)
- RFC 5321 – The Simple Mail Transfer Protocol (obsoletes RFC 821 aka STD 10, RFC 974, and RFC 1869, RFC 2821)
- RFC 5322 – Internet Message Format (obsoletes RFC 822 aka STD 11, and RFC 2822)
- RFC 2920 – SMTP Service Extension for Command Pipelining (STD 60)
- 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 (obsoletes RFC 2487)
- RFC 3461 – SMTP Service Extension for Delivery Status Notifications (obsoletes RFC 1891)
- RFC 3462 – The Multipart/Report Content Type for the Reporting of Mail System Administrative Messages (obsoletes RFC 1892)
- RFC 3463 – Enhanced Status Codes for SMTP (obsoletes RFC 1893 )
- RFC 3464 – An Extensible Message Format for Delivery Status Notifications (obsoletes RFC 1894)
- RFC 3834 – Recommendations for Automatic Responses to Electronic Mail
- RFC 4409 – Message Submission for Mail (obsoletes RFC 2476)
- RFC 4952 – Overview and Framework for Internationalized E-mail
- RFC 4954 – SMTP Service Extension for Authentication (obsoletes RFC 2554)
- RFC 5068 – E-mail Submission Operations: Access and Accountability Requirements (BCP 134)
- Liste des RFCs
- Le protocole SMTP
- Tester un serveur SMTP
- Online SMTP tester Tester l'envoi d'un mail par votre server SMTP
Catégories :- Courrier électronique
- Protocole réseau sur la couche application
Wikimedia Foundation. 2010.