SMTP fournit un mécanisme d'échanges et de transports pour le courrier électronique entre 2 hosts. Le protocole utilisé est très simple et existe depuis de nombreuses années. Il a évolué pour suivre les évolutions du courrier électronique.
Voici un exemple de session SMTP :
Trying 195.207.52.100...
Connected to unix.be.EU.org.
Escape character is ']'.
220 ns.synoptic.be ESMTP Sendmail 8.9.1/8.9.1; Fri, 19 May 2000 11:58:46
+0200
HELO .
250 ns.synoptic.be Hello [195.74.211.67], pleased to meet you
MAIL FROM:<alexandre.dulaunoy@ibt.be>
250 <alexandre.dulaunoy@ibt.be>... Sender ok
RCPT TO:>[[D
553 ... Unbalanced '>'
RCPT TO:<adulau@be.linux.org>
250 <adulau@be.linux.org>... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
test
.
250 LAA10999 Message accepted for delivery
QUIT
221 ns.synoptic.be closing connection
Connection closed by foreign host.
HELO .
Cette commande permet de réaliser le ``handshake'' entre le serveur et le client. La réponse du serveur est positive (code 250).
MAIL FROM:<alexandre.dulaunoy@ibt.be>
Le ``mail from'' définit l'origine du message. Il est à noter que la majorité des serveurs SMTP demande un domain valide (cf. SPAM).
RCPT TO:<adulau@be.linux.org>
Comme pour le ``mail from'', le ``rcpt to'' définit le (ou les) destinataire(s) du message.
Ensuite, le ``DATA'' définit le début du message (encodé ou pas). le ``.'' termine le contenu du message. Ensuite le serveur SMTP confirme l'acception du message. Vous pouvez ensuite faire la même chose ou faire un ``QUIT'' pour quitter la session TCP.