Les commandes SMTP
Accueil  Informatique  Tutoriels et marches à suivre  Les commandes SMTP
Dans cette section:
Initier une connexion SMTP
La session SMTP
Résumé des commandes
Sujets connexes:
Installer MySQL 5.0.19 sous Solaris 10
Installer PHP 5.1.2 sous Solaris 10
Les commandes SMTP
Trucs et astuces variés
Les incontournables:
Le Nikon D700
Le Nikon D3S
Le Nikon D300
Jouer avec les courbes du Nikon D70/D70s
Galeries d'images
Ce petit tutoriel vous donnera les grandes lignes vous permettant d'établir une connexion SMTP manuellement, avec les commandes et les échanges standards acceptés par la plupart des serveurs SMTP, via une connexion Telnet (en mode commandes).

Initier une connexion SMTP haut
 
Initier une connexion en mode SMTP est tout ce qu'il y a de plus simple!!  Il vous faut établir une session Telnet sur le port 25 (c'est le port TCP utilisé par défaut pour pratiquement tous les serveurs de courrier électronique sur toute la planète!):
 
ben_audet$ telnet mail.domaine.com 25
Trying 101.202.111.222...
Connected to mail.domaine.com.
Escape character is '^]'.
220 mail.domaine.com ESMTP Sendmail 8.12.10+Sun/8.12.10;
Sat, 14Jan 2006 10:31:38 -0500 (EST)
 
Alors, rapidement, j'ai simplement tapé, dans ma fenêtre terminale (qui peut être soit un "shell" sous Unix, ou encore une fenêtre DOS), la commande suivante:

telnet mail.domaine.com 25

où "telnet" est le programme Telnet, "mail.domaine.com" doit être le nom du serveur de courrier électronique SMTP sur lequel vous désirez initier une session SMTP (par exemple, "relais.videotron.net" pour Vidéotron, "relay.globetrotter.net" pour Telus/Globetrotter et "toip5.bellnexxia.net" pour Sympatico, pour le nommer que ceux là...) et "25" pour établir cette connexion sur le port TCP numéro 25.

Une fois connecté vous pouvez commencer à envoyer vos commandes pour "échanger" avec le serveur SMTP sur lequel vous êtes! Donc, comme vous pouvez le constater, c'est très simple de se connecter à un serveur de courriel via SMTP. Et c'est le protocol d'échange classique pour tout courrier électronique (e-mail)!
 
La session SMTP haut
 
Vous êtes connecté, très bien!  Maintenant, il faut initier la session.  Pour initier une session, il faut quelques préalables.  Ces préalables sont les suivants:
  • être connecté à partir d'un endroit reconnu par un nom de domaine valide;
  • connaître une adresse de courrier électronique valide de destination.
Ça peut paraître un peu étrange, mais dans la plupart des cas, et c'est pour des raisons de sécurité, si le serveur SMTP sur lequel vous échangez n'est pas capable de résouvre notre nom de domaine par recherche inverse (reverse lookup DNS - c'est le processus par lequel, par l'adresse IP à partir de laquelle vous vous connectez, un service peut déduire votre nom de domaine via une requête DNS), ou si la résolution donne un nom de domaine différent que celui que vous utilisez, il n'acceptera pas d'échanger avec vous.  Également, si vous n'avez pas une adresse de courrier électronique valide pour la destination de votre "échange SMTP", oubliez ça, le serveur avec qui vous tentez d'échanger vous dira qu'il n'y a pas d'usager correspondant...   ...c'est le gros bon sens, dans le fond!

Donc, prenons pour acquis que ces deux préalables, dans notre exemple, sont bien rencontrés, et que pour les besoins de la cause, le domaine actuel sera "localhost.benoitaudet.com", et que l'adresse valide à destination sera "ben@domaine.com".  Et nous sommes maintenant prêt à initier la session SMTP.

Pour initier une session SMTP, c'est assez simple, il faut le faire de la même manière qu'on initie une rencontre entre deux personnes: on initie une rencontre en saluant et en se présentant, alors on doit saluer et se présenter au serveur de destination SMTP.  Pour se faire, il faut utiliser la commande "HELO" comme suit:
 
HELO localhost.benoitaudet.com
250 mail.domaine.com Hello localhost.benoitaudet.com
[121.323.222.333], pleased to meet you
 
N'attendez aucun curseur, une fois la connexion établie, pour entrer la commande "HELO": le système distant attend déjà que vous vous présentiez. Donc, sans plus attendre, j'ai entré la commande suivante:

HELO localhost.benoitaudet.com

où "HELO" est la commande qui signifie: "Bonjour, je me présente..." et "localhost.benoitaudet.com" est le nom de l'ordinateur, connu sur l'internet via DNS avec ce nom, à partir duquel je désire échanger via le protocol SMTP. Si le premier préalable, c'est-à-dire que votre ordinateur est bien identifiable côté DNS, est rempli et que le serveur vous "autorise", il vous salue cordialement de la sorte:

250 mail.domaine.com Hello localhost.benoitaudet.com [121.323.222.333], pleased to meet you

et vous pouvez ainsi continuer l'échange avec le serveur, en donnant votre adresse personnelle de courrier électronique, et ce par le biais de la commande "MAIL FROM:" accompagné de votre adresse, comme suit:
 
MAIL FROM: moi@benoitaudet.com
250 2.1.0 moi@benoitaudet.com... Sender ok
 
et vous poursuivez ensuite avec le deuxième prérequis dont il était question ci-haut, à savoir l'adresse de courrier électronique valide de destination, en argument de la commande "RCPT TO:", comme ci-bas:
 
RCPT TO: ben@domaine.com
250 2.1.5 ben@domaine.com... Recipient ok
 
Maintenant que l'expéditeur (vous) et le destinataire (votre adresse valide de destination) sont tous deux acceptés par le serveur SMTP, la majorité des formalités sont terminées!  Vous pouvez alors passer aux choses sérieuses, à savoir transmettre le "contenu" (ou le "body") de votre message.  Pour se faire, il faut avoir recours à la commande "DATA" entrée seule, sans rien, suivi de la touche "entrée" (enter):
 
DATA
354 Enter mail, end with "." on a line by itself
 
le serveur vous confirme alors qu'il est prêt à prendre le contenu de votre courrier électronique pour votre destinataire, et que pour indiquer la fin de votre message, vous devrez entrer le simple caractère "." sur une ligne unique, suivi de la touche "entrée" (enter).

Si vous voulez que le message que vous allez envoyer à votre destinataire porte un sujet, pendant que vous êtes en mode "DATA", vous n'avez qu'à le faire avec la syntaxe suivante: "Subject: incscrivez votre sujet ici", suivi de deux fois la touche "entrée" (enter - vous devez faire deux fois la touche "entrée" pour vous conformer à la norme RFC-882, qui est respectée par l'ensemble des serveurs SMTP).

Vous pouvez alors poursuivre avec la suite de votre message, par exemple: "Bonjour Ben, c'est Moi! Au plaisir!"

Tel que mentionné un peu plus haut, une fois que vous en avez fini avec votre message, vous devez indiquer au serveur que votre message est complet, et vous devez le faire en entrant le caractère "." (sans les guillemets, évidemment) sur une ligne seule, suivi de la touche "entrée" (enter):
 
Subject: Ceci est un test

Bonjour Ben, c'est Moi!  Au plaisir!
.

250 2.0.0 k0F2ASlC020182 Message accepted for delivery
 
Si cette simple syntaxe est respectée, le serveur confirme normalement sans délai l'acceptation de votre message pour livraison au destinataire par le message "250 2.0.0 ?????????????? Message accepted for delivery" (ou les ??????????????? correspondent à votre numéro séquentiel unique, propre à l'envoi que vous venez de réaliser - il est donc variable à chaque fois).

Et voilà, votre message a été envoyé avec succès.  Vous pouvez maintenant terminer votre connexion au serveur SMTP par la simple commande "QUIT":
 
QUIT
221 2.0.0 mail.domain.com closing connection
Connection to mail.domaine.com closed by forein host.
 
le serveur ferme alors la connexion active et vous retombez en mode terminal dans votre "shell" (sous Unix) ou votre fenêtre DOS.  Voilà!
 
Résumé des commandes haut
 
Le tableau suivant contient la liste des commandes qui sont nécessaires à la session SMTP, telles qu'elles ont été présentées ci-dessus.  Il existe d'autres commandes SMTP vous permettant d'accomplir d'autres tâches, cette liste n'est donc pas exaustive.

Commandes Description
telnet La commande "telnet" sert à réaliser la connexion au serveur en mode terminal. Il faut qu'elle soit accompagnée du nom du serveur SMTP, suivi du numéro du port TCP d'écoute (normalement, il s'agit du port "25).
HELO Il s'agit de la commande initiale de présentation, où vous devez fournir le nom du domaine à partir duquel vous initiez la communication.
MAIL FROM: Cette commande sert à fournir l'adresse de l'émetteur, en l'occurence, si vous êtes l'émetteur, il s'agit donc de votre adresse de courriel.
RCPT TO: Ici, c'est l'adresse du destinataire que vous devez entrer. Il sera validé localement.
DATA Cette commande n'accueille aucune option ou argument, et précise que vous commencez à transmettre votre message et son contenu. Vous devez finir par le caractère "." sur une ligne seule.
QUIT Précise que votre session SMTP est terminée. Le serveur SMTP vous déconnecte alors du port de communication. La session se termine alors.


 
Version imprimable

Accueil Photographie Aviation Informatique Autres trucs Galeries d'images Liens Pour me joindre

Copyright © 2014, Benoit Audet (www.benoitaudet.com), tous droits réservés.
Protégé par les lois du copyright des États-Unis et du Canada et par des traités internationaux.
Benoit Audet