ESMTP

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.