__:: Internet: Le m@il ::__


Nous avons déjà rencontré un certain nombre de fois le modèle OSI et nous allons encore une fois l'utiliser pour le compléter par le haut cette fois ci. De manière très simple, la couche qui se situera au-dessus de TCP dans le modèle va dépendre du type d'application que vous effectuez. Ainsi, si vous êtes en train de parcourir une page web, le protocole utilisé au-dessus de TCP sera HTTP (nous l'avons déjà vu). De même, si vous êtes en train d'utiliser Outlook ou tout autre logiciel de gestion de messagerie éléctronique vous allez pouvoir utiliser deux protocoles qui seront décris dans cette section :

1) Le protocole SMTP (Simple Mail Transfer Protocol) sera utilisé pour envoyer un mail.

2) Le protocole POP3 (Post Office Protocol version 3) sera utilisé pour la réception de mails.

Avant de commencer, je tenais à vous expliquer un peu le fonctionnement d'une boite mail. La boite mail est en fait un espace mémoire qui vous est réservé sur un des disques d'un serveur de votre FAI (ou de votre fournisseur d'adresse e-mail comme hotmail, caramail ...). C'est ce serveur qui va recevoir vos mails 24h sur 24 et 7 jours sur 7 sans qu'il soit nécessaire que vous soyez connecté à internet. Vos mails sont stockés jusqu'à votre prochaine connexion. Lorsque vous ouvrez Outlook pour consulter votre courrier, le logiciel va se connecter au serveur en question et télécharger les éventuels mails qui n'ont pas encore été lus. De même quand vous envoyez un message, votre logiciel se connecte au serveur de mail pour lui envoyer votre message. Le serveur pourra ensuite transférer le message au serveur mail du destinataire.

 

Le protocole SMTP

Je l'ai déjà dit plus haut, ce protocole est celui qui est le plus couramment utilisé pour procéder à l'envoi de courrier électronique. Si vous avez encore en tête le tableau des ports de la section IP, vous trouverez facilement le port associé au protocole SMTP : il s'agit du port 25. Pour se connecter au serveur mail de votre FAI il ne nous reste plus qu'à trouver, puisque nous avons déjà le port, l'adresse (IP ou URL) de ce serveur. Et ça, c'est très facile. Vous connaissez forcément l'adresse du site web de votre FAI. Disons que cette dernière est www.fai.fr. Dans ce cas il y a plus que de très fortes chances pour que l'adresse du serveur mail de votre FAI soit mail.fai.fr.

Résumons : on a l'adresse du serveur et le numéro de port auquel se connecter, il ne nous manque donc plus rien pour établir une connexion avec ce dernier !!
Nous allons donc nous connecter au serveur mail de notre FAI et envoyer un mail à la main sans passer par outlook.
Quoi de mieux pour comprendre le fonctionnement du protocole !!
Pour ce faire, nous allons utiliser un petit outil fort pratique qu'on a déjà rencontré dans les chapitres précédents et qui est décrit plus en détail dans la section outils : il s'agit de Telnet.

Vous allez donc lancer une session Telnet (vous savez faire maintenant) en spécifiant comme adresse celle du serveur mail de votre FAI et comme numéro de port 25. Ca donnera à peu près ceci (pour les flemmards ...) :

c:>telnet mail.fai.fr 25

Rem: Pensez tout de suite à activer l'echo local dans le menu "préférences" sinon vous ne verrez pas s'afficher à l'écran les caractères entrés au clavier .

Voici ce que nous allons faire :

220 mail.fai.fr ESMTP Sendmail 8.9.1 (1.1.20.3/07Jul00-0916AM) Thu, 7 Dec 200017:18:50 +0530 (IST)
helo resolution.com
250-mail.fai.fr Hello [203.xx.yyy.91], pleased to meet you
mail from: resolution@club-internet.fr
250 resolution@club-internet.fr... Sender ok
rcpt to: mon_copain_bob@caramail.com
250 moi@fai.fr... Recipient ok
data
354 Enter mail, end with "." on a line by itself
Subject: Test de mail
Ceci est le corps de mon mail fait à la main.
.

250 RAA0000001693 Message accepted for delivery


Je vais maintenant détailler pas à pas chaque ligne, mais tout d'abord veuillez noter que sont affichées ci dessus deux types de lignes : les lignes que j'ai entrées à la main et les lignes qui ont été envoyées par le serveur mail. Ces dernières sont facilement reconnaissables car elles sont toujours précédées d'un nombre. Pour des raisons de clarté, j'ai affiché en gras les commandes entrées à la main.

Commençons. Dès que vous avez tapé entrée suite à la première commande, la première ligne s'est affichée à l'écran

220 mail.fai.fr ESMTP Sendmail 8.9.1 (1.1.20.3/07Jul00-0916AM) Thu, 7 Dec 200017:18:50 +0001 (IST)

Il s'agit de ce qu'on appelle une bannière de bienvenue. Vous en rencontrerez de nombreuses lors de vos connections. Elles contiennent souvent une foule d'informations intéressantes. Dans notre cas, on nous confirme que nous sommes bien connéctés sur mail.fai.fr. ESMTP est le protocole utilisé par le serveur mail. Il s'agit d'une variante de SMTP (Extended SMTP) qui comporte peu de différence. Sendmail 8.9.1 correspond au nom et à la version du daemon SMTP qui est à l'écoute sur le port 25 et avec qui nous sommes connectés. Les informations entre parenthèses correspondent aux dernières dates de configuration ou d'upgrade logiciel du sendmail. La date à l'exterieur des parenthèses correspond à la date courante. Voilà le genre d'informations que l'on peut récupérer simplement en se connectant au serveur.
Attention cependant, certains serveurs sont moins bavards, certains le sont plus ... cela dépend de la politique de l'administrateur réseau !

helo resolution.com

Il s'agit là d'une commande : helo. Elle vous permet de vous introduire auprès de serveur. C'est la première commande à entrer. Vous devez préciser en principe en argument le nom d'hote de votre machine. Pour l'exemple j'ai mis résolution.com mais vous pouvez mettre bob.com ou pinguin.fr si vous voulez ....

250-mail.fai.fr Hello [213.44.233.91], pleased to meet you

Petite réponse sympathique du serveur. Il vous donne votre adresse IP (zut, on est repéré ....) et vous dit bonjour.

mail from: resolution@club-internet.fr

A vous de jouer avec la deuxième commande : mail from: [argument].
Pas très dur à comprendre celle-ci... Il s'agit de l'adresse qui apparaîtra dans le champ expéditeur de votre mail. Vous pouvez mettre votre vrai adresse (il vaut mieux sinon la personne ne pourra pas vous répondre) mais aussi n'importe quelle autre adresse monboss@estnul.com par exemple ....

250 resolution@club-internet.fr... Sender ok

Le serveur répond : "C'est OK, j'ai bien enregistré l'émetteur du mail ! " (trop con ce serveur ...)

rcpt to: moi@fai.fr

Troisième commande : rcpt to:[destinataire]
Pas trop dur non plus .... rcpt ça veut dire recipient en anglais abrégé : c'est grâce à cette commande que vous précisez lez destinataires du mail ... Vous pouvez réitérer cette commande à souhait si il y a plusieurs destinataires ... et oui ! Une seule adresse par commande !!

250 moi@fai.fr... Recipient ok

Comme tout à l'heure, le serveur confirme (ou ne confirme pas si c'est mal passé) avoir reçu l'adresse destination.

data

Quatrième commande : data
Grâce à cette commande vous aller passer en mode édition et pouvoir taper le contenu de votre mail.

354 Enter mail, end with "." on a line by itself

Le serveur confirme. Il vous indique par ailleurs que pour repasser en mode commande et donc terminer et envoyer votre mail vous devez taper un point tout seul en début de ligne puis entrée (sinon entrée = retour à la ligne).

Vous pouvez maintenant entrer le contenu du mail :

Subject: Test de mail
Ceci est le corps de mon mail fait à la main.
.

Vous vous en doutez, Subject:[Sujet du mail] permet de renseigner le champ approprié ... Ce n'est pas obligatoire !
Le texte du mail, ça je vous laisse faire, vous êtes sûrement très fort pour ça !
Pensez bien que pour terminer il faut un point tout seul en début de ligne !!

250 RAA0000001693 Message accepted for delivery

Et voilà !! Le message est parti !!! Vous pouvez quitter avec la commande d'échappement de telnet (en principe ctrl + $), tout simplement !!

Comme vous pouvez le voir, le protocole SMTP et les serveurs Sendmail ne sont pas vraiment sécurisés ... Autant dire qu'ils ne le sont pas du tout et que vous pouvez quand vous voulez et où vous voulez envoyer un mail de la part de n'importe qui dont vous connaissez l'adresse mail. Le but de cette rubrique est également de vous avertir une fois de plus : ne faites aucune confiance aux mails. Il n'y a quasiment aucun moyen d'être sur que le mail que vous êtes en train de lire est un original ou si il a été envoyé par une autre personne que son expéditeur présumé. Heureusement, tout le monde ne connaîit pas ce fonctionnement. Imaginez un peu les dêgats que peuvent causer une série de faux mails dans une entreprise par exemple !
Rassurez-vous cependant, les faux mails parfaits sont très difficiles à réaliser et je vais vous montrer comment éviter de tomber dans le panneau si jamais vous n'êtes pas sûr de la véracité d'un mail.

Etude des En-têtes

Peut être ne le saviez vous pas mais les mails que vous recevez contiennent une foule d'informations intéressantes qui sont par défaut masquées par Outlook. Il s'agit une fois de plus des headers (en-têtes) du mail.
Pour y accéder, sélectionnez un message dans votre boite de réception et tapez "alt + entrée". Une petite fenêtre s'ouvre alors et vous propose d'afficher la source du message. Vous devriez arriver sur quelque chose comme ca :

Return-Path: resolution@club-internet.fr
Received: from resolution.com by mail.fai.fr (8.9.1/1.1.20.3/07Jul00-0916AM) id RAA0000001693 for moi@fai.fr; Thu, 7 Dec 2000 17:19:49 +0530 (IST)
Date: Thu, 7 Dec 2000 17:19:49 +0530 (IST)
From: resolution@club-internet.fr

Message-Id: <200012071149.RAA0000001693@mail.fai.fr>
Subject: Test de mail
X-UIDL: 920156a3b926c5193036933e6d04efd5

Ceci est le corps de mon mail fait à la main.

Si vous faites bien attention, il s'agit des headers et du mail que nous avions envoyé à la main juste au dessus.
Etudions un peu ce que nous avons là ... Je tiens à vous prévenir tout de suite, cet exemple est vraiment un exemple très simple ... Il existe des headers bien plus complexes que nous verrons par la suite.
Tout d'abord, on distingue assez rapidement deux grandes parties : le corps du message (en bas) et les headers (en haut). On va passer rapidement sur le corps du message puisqu'il ne contient rien de plus que le message même du mail et les pièces jointes (si il y en a). On reviendra dessus plus tard si ça vous intéresse, vous me le direz !
Bon, les headers, c'est déja plus croustillant. Comme l'exemple est simple, on va partir du haut (je vous conseille de faire l'inverse sur des headers de taille importante, vous verrez pourquoi)

La première ligne est explicite : elle précise l'adresse à utiliser lorsque vous faites une reponse au mail. Outlook utilisera automatiquement celle-ci. Remarquez au passage que c'est aussi l'adresse que vous aviez précisé après la commande "mail from: " lors de l'envoi.

La deuxième ligne commence par "Received:". Cette ligne va servir à décrire le trajet emprunté par le mail. Il se peut très bien que votre courrier ai traversé de nombreux serveurs et qu'il y ai plusieurs lignes qui commencent par received. Ce n'est pas le cas ici car dans mon exemple on s'est connécté directement au bon serveur mail, celui de notre fournisseur d'accès (fai.fr) et qui héberge donc aussi notre boîte mail. Toujours est-il que le format des lignes sera toujours le même :

Received: from xxxx by yyyy [for zzz@fai.fr]; date

Où xxxx est le serveur ou le domaine source (émetteur), yyyy est le domaine ou serveur cible (récepteur) et zzz le destinataire du mail. Vous pouvez donc suivre très exactement le trajet d'un mail.

Rem: La ligne la plus haute (la première que l'on lit) correspond à la dernière étape parcourue. C'est pourquoi en cas de multiples transferts il vaut mieux partir du bas pour retrouver le trajet dans un ordre chronologique.

Dans notre cas, cette ligne indique que le mail a été reçu par mail.fai.fr (le serveur auquel on s'est connecté) et qu'il vient de "resolution.com": c'est le nom de domaine que l'on a donné à l'aide de la commande helo... On retrouve tout !

La troisième ligne correspond à la date de recéption du courrier par le serveur. C'est celle qui s'affiche sous Outlook.

La quatrième ligne précise l'expéditeur. En effet, il peut être utile de préciser une adresse de retour qui soit différente de l'adresse d'émission.

La cinquième ligne contient l'identifiant du message en question. C'est le même que celui qui nous a été donné en fin d'envoi de message. On peut remarquer que cet identifiant précise le nom du serveur mail sur lequel le mail a été déposé. C'est un détail d'importance.

Les autres lignes contiennent le sujet et le corps du mail ainsi qu'un nouvel identifiant.

Cet exemple était vraiment trop simple ....

Voici un petit exemple de header un peu plus complexe avec des renvois multiples :

Received: from smtp1.9tel.net (smtp1.9tel.net [212.30.96.108]) by front6m.grolier.fr (8.9.3/No_Relay+No_Spam_MGC990224) with SMTP id SAA01646 for xxx@yyyyy.com; Wed, 5 Sep 2001 18:34:09 +0200 (MET DST)
Received: (qmail 26486 invoked from network); 5 Sep 2001 16:34:08 -0000
Received: from unknown (HELO get) (212.30.107.225) by 0 with SMTP; 5 Sep 2001 16:34:08 -0000

Message-ID: <000a01c13629$ac2a58e0$f39ffea9@up>
From: "bozo le clown" zzzz@zzzz.com
To: "bob martin" xxx@yyyy.com
Subject: bonjour !!!
Date: Wed, 5 Sep 2001 18:41:53 +0200

MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_0007_01C1363A.6EE9BE60"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2615.200
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200
Status: X-Mmail: \Recent
X-M-Uid: 0000235.999707651

This is a multi-part message in MIME format.

------=_NextPart_000_0007_01C1363A.6EE9BE60
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Etudions ça un peu plus en détail. La partie qui nous intéresse est la suivante:

Received: from smtp1.9tel.net (smtp1.9tel.net [212.30.96.108]) by front6m.grolier.fr (8.9.3/No_Relay+No_Spam_MGC990224) with SMTP id SAA01646 for xxx@yyyyy.com; Wed, 5 Sep 2001 18:34:09 +0200 (MET DST)

Received: (qmail 26486 invoked from network); 5 Sep 2001 16:34:08 -0000

Received: from unknown (HELO get) (212.30.107.225) by 0 with SMTP; 5 Sep 2001 16:34:08 -0000

On part donc de la fin. On apprend que "unknown" s'est connecté au serveur "0" sous le nom de serveur "get" grâce au protocole SMTP le 5 septembre 2001. On apprend aussi, et ça peut servir alors faites-y attention, que l'adresse IP de "get" était à cet instant 213.30.107.225. Ceci est une particularité de certains serveurs mail, ils copient dans les headers les adresses IPs des personnes qui se sont connéctées ... Sachez tout de même que c'est un moyen très fiable de retrouver une personne. Les FAI sont en effet obligés de conserver en mémoire les adresses IP et les personnes auxquelles elles ont été attribuées durant un certain temps. Votre FAI possède en principe vos noms et adresse, il peut de toute façon retrouver votre numéro de téléphone si vous vous connectez par modem. Vous n'êtes donc pas anonyme sur le réseau et sachez que de toute façon, c'est très dur à réaliser !

La deuxième ligne indique qu'un serveur qmail a été utilisé pour transférer le message. Il s'agit d'un type de serveur différent de Sendmail et bien plus sécurisé.

La première ligne nous indique que le serveur front6m.grolier.fr a reçu le message depuis le serveur smtp1.9tel.net dont l'adresse IP est 212.30.96.108.

Vous le voyez bien, certains serveurs sont plus bavards que les autres. Tout cela dépend une nouvelle fois de la stratégie et de la méfiance de l'administrateur réseau.

Les headers mail peuvent nous apprendre encore beaucoup de choses ... Je ne vais pas continuer longtemps mail dans ce mail, on apprend que l'expéditeur utilise Microsoft Outlook Express 5.00.2615.200, ce qui est tout de même assez précis. On peut tout de suite en déduire que sa machine tourne sous windows... Rien qu'en étudiant rapidement un en-tête de mail on peut donc trouver pas mal d'informations sur l'expéditeur : son système d'exploitation, son logiciel de mail, son adresse IP et donc son fournisseur d'accès et son point de connexion, et bien sur son nom et son prénom.... Alors faites bien attention !! On peut en apprendre beaucoup sur vous avec un simple mail !!

Le protocole POP3

On a vu comment envoyer un mail sans passer par Outlook, on a compris comment déchiffrer un en-tête de mail ... il ne reste plus qu'à apprendre comment aller chercher ses mails à la main et on saura tout sur le mail non ???

Nous y voilà ! Tout d'abord, POP signifie Post Office Protocol et le 3 est là pour dire que c'est la troisième version du protocole ... Pas bien compliqué ! Le protocole permet à un client POP3 (un logiciel comme Outlook ou tout simplement Telnet et vous au clavier) d'échanger des commandes avec un serveur POP3 et de rapatrier localement les mails qui sont stockés sur ce serveur. Comme pour SMTP, on va utiliser telnet pour se connecter au serveur. Le port à utiliser est le port 110, le nom du serveur est simple à trouver : en principe il est de la forme pop.fai.fr. Allons-y !!

c:>telnet pop.fai.fr 110

Une fois connecté, vous êtes accueilli par une bannière. Celle de mon fournisseur est simpliste :

+OK POP3 server ready

Cela signifie que le serveur est prêt à prendre une commande. Vous pouvez essayer de demander de l'aide en tapant "help" ou encore "h" ou "?" pour essayer d'obtenir la liste des commandes disponibles. En principe ces commandes ont été bloquées et le serveur coupe la connexion si vous essayez ... mais il faut le tenter !!
Bon, on a vu que le protocole SMTP n'était pas tellement sécurisé, voir même pas du tout; qu'en est-il de POP3 : tout le monde peut-il aller lire vos mails personnels aussi facilement ? Heureusement pas tout à fait ...
Pour notre sécurité, ce protocole est doté d'un processus d'identification, vous devez donc fournir un nom d'utilisateur et un mot de passe pour accéder au compte mail. Vous voilà rassuré j'espère. Vous verrez cependant que ce n'est pas un moyen très fiable de sécuriser une messagerie.
Vous devez donc préciser vos username et password. Ces derniers vous ont été fournis par votre FAI.

USER mon_username

Le serveur va répondre :

+OK mon_username please enter password

Et on donne le password :

PASS *******

Si les donnés fournies sont incorrectes, vous obtenez un message du genre:

-ERR Bad login

ou:

-ERR Password is incorrect

Si les donnés sont exactes, vous êtes connecté au serveur. Ce dernier vous indique immédiatement le contenu de votre boite mail.

+OK mon_username has 1 message (1341 octets)

Vous avez donc un nouveau message de 1341 octets.

Vous pouvez ensuite entrer plusieurs commandes :

Commande
Action
STAT
Donne le nombre de message et la taille totale en octets
LIST
Donne une liste numérotée des messages présents avec la taille de chacun en octets
RETR + N°
Affiche le message correspondant avec la totalité des headers
DELE + N°
Efface du serveur le message correspondant
QUIT
Ferme la connexion avec le serveur.

Attention : Si vous voulez lire vos mails par cette méthode, pensez à sauvegarder l'intégralité de votre session telnet dans un fichier log. En effet, si vous oubliez, les messages vont défiler à l'écran sans que vous ayez le temps de les lire !!

Vous pouvez ainsi gérer votre boite mail sans l'aide d'un logiciel de messagerie ... C'est tout de même un peu plus compliqué, je l'avoue !!

Voilà ... C'est à peu près tout ce que j'ai à dire sur POP3. Si ! Un petit truc en plus : le login du compte POP3 correspond souvent à la première partie de l'adresse e-mail, située devant le signe @. Il ne reste plus qu'à trouver le mot de passe pour accéder au compte ... Et si vous saviez comme il est simple de trouver un mot de passe !! La plupart des gens, malgré les recommandations, utilisent le même partout pour ne pas avoir 15 mots de passe à retenir. Certain utilisent même le login comme mot de passe ... Enfin, tout ça pour dire que même si le serveur POP3 n'est pas bugé (et ça arrive, je vous promets !) il est possible d'accéder au compte mail de quelqu'un si vous arrivez à trouver son mot de passe .... C'est juste pour vous prévenir !!

[ Précédent | Accueil | Suivant ]
© 2001 RésoLution. Tous droits réservés. Contactez le Webmaster.