|
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. |
|
|
|
Plus en détails...
|
haut
|
|
|
|
|
|
|