ESMPT permet d'étendre SMTP tout en restant compatible avec SMTP. Pour entamer un dialogue ESMTP, il suffit de changer HELO par EHLO. Si le serveur supporte ESMTP, il annonce la liste des options qu'il supporte, sinon il répond HELO et la communication se poursuit avec SMTP :
mdecore@tarsier:~$ telnet localhost smtp Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 tarsier.athome.chezmoi ESMTP Sendmail 8.9.3+3.2W/8.9.3/Mathieu DECORE - 14/10/2000; Wed, 27 Dec 2000 17:42:24 +0100 EHLO world 250-tarsier.athome.chezmoi Hello mdecore@localhost [127.0.0.1], pleased to meet you 250-EXPN 250-VERB 250-8BITMIME 250-SIZE 250-DSN 250-ONEX 250-ETRN 250-XUSR 250 HELP QUIT 221 tarsier.athome.chezmoi closing connection Connection closed by foreign host. mdecore@tarsier:~$
On peut par exemple délivrer un accusé de réception à un message :
mdecore@tarsier:~$ telnet localhost smtp Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 tarsier.athome.chezmoi ESMTP Sendmail 8.9.3+3.2W/8.9.3/Mathieu DECORE - 14/10/2000; Wed, 27 Dec 2000 17:42:24 +0100 EHLO world 250-tarsier.athome.chezmoi Hello mdecore@localhost [127.0.0.1], pleased to meet you 250-EXPN 250-VERB 250-8BITMIME 250-SIZE 250-DSN 250-ONEX 250-ETRN 250-XUSR 250 HELP MAIL FROM: <mdecore@localhost> RET=HDRS ENVID=mesg 250 <mdecore@localhost>... Sender ok RCPT TO: <piou@localhost> NOTIFY=SUCCESS ORCPT=rfc822;piou@localhost 250 <piou@localhost>... Recipient ok DATA 354 Enter mail, end with "." on a line by itself Le texte... . 250 RAA00917 Message accepted for delivery QUIT 221 tarsier.athome.chezmoi closing connection Connection closed by foreign host. mdecore@tarsier:~$
Ici, on veut que l'accusé retourne l'en-tête (RET=HDRS) avec comme mot cléf mesg (ENVID=mesg). Le message doit être envoyé en cas de succès (NOTIFY=SUCCESS), et l'adresse du destinataire au retour doit être la même que celle spécifiée pour outrepasser les réécritures (ORCPT=rfc822;piou@localhost).
Et le mél reçu pour notification par l'expéditeur contient :
Date: Wed, 27 Dec 2000 17:59:41 +0100 From: Mail Delivery Subsystem <MAILER-DAEMON@tarsier.athome.chezmoi> To: <mdecore@tarsier.athome.chezmoi> Subject: Return receipt Auto-Submitted: auto-generated (return-receipt) [-- Attachment #1 --] [-- Type: text/plain, Encoding: 7bit, Size: 0.3K --] The original message was received at Wed, 27 Dec 2000 17:57:48 +0100 from mdecore@localhost [127.0.0.1] ----- The following addresses had successful delivery notifications ----- <piou@localhost> (successfully delivered to mailbox) ----- Transcript of session follows ----- <piou@localhost>... Successfully delivered [-- Attachment #2 --] [-- Type: message/delivery-status, Encoding: 7bit, Size: 0.3K --] Original-Envelope-Id: mesg Reporting-MTA: dns; tarsier.athome.chezmoi Received-From-MTA: DNS; localhost Arrival-Date: Wed, 27 Dec 2000 17:57:48 +0100 Original-Recipient: rfc822;piou@localhost Final-Recipient: RFC822; <piou@localhost> Action: delivered (to mailbox) Status: 2.1.5 Last-Attempt-Date: Wed, 27 Dec 2000 17:59:41 +0100 [-- Attachment #3 --] [-- Type: text/rfc822-headers, Encoding: 7bit, Size: 0.4K --] Return-Path: <mdecore@tarsier.athome.chezmoi> Received: from localhost (mdecore@localhost [127.0.0.1]) by tarsier.athome.chezmoi (8.9.3+3.2W/8.9.3/Mathieu DECORE - 14/10/2000) +with ESMTP id RAA00917 for <piou@localhost>; Wed, 27 Dec 2000 17:57:48 +0100 Date: Wed, 27 Dec 2000 17:57:48 +0100 From: Mathieu DECORE <mdecore@tarsier.athome.chezmoi> Message-Id: <200012271657.RAA00917@tarsier.athome.chezmoi> To: undisclosed-recipients:;
Ceci n'est qu'un exemple des extension proposées par ESMTP, se reporter aux RFC 1651 et 1869 pour les commandes optionnelles, 1652 pour le transport des messages contenant des caractères 8 bits, 1830 pour le transport de binaires ou de gros messages, 1985 pour l'émission des messages en attente, 1891 à 1894 pour l'accusé de réception, 1870 pour la déclaration de la taille des messages, 2197 pour les commandes à la file, 2222 pour l'authentification des clients...
Tous les serveurs de méls ne supportent pas forcément ESMTP, et de nouvelles options apparaissent régulièrement. Il serait vain (et ennuyeux) de vouloir tout décrire ici.