Alternative Micro Système




Les formats graphiques
Construire un site Web
Protocoles de messagerie
Le protocoles FTP
Le dessin vectoriel
Cours de Basic
Retouche d'images
Le langage XML
Les associations
Le E-commerce
Les virus
La compression
Les cookies
Trouver un job
La comptabilité
Comprendre la paie

Comprendre l'informatique

Les protocoles de messagerie

Le système de messagerie Internet est basé sur deux protocoles : Le protocole entrant POP3 permet de lire les mails Le protocole sortant SMTP permet d'envoyer les mails

Le protocole pop
Le protocole smtp

Comme tous les protocoles Internet, ces protocoles sont textuels : constitués de commandes sous forme chaines de caractères, comme au bon vieux temps des systèmes d'exploitation en mode commande. (UNIX est lié à l'histoire d'Internet).

Le protocole POP3

Vous pouvez l'utiliser avec Telnet (Connexion - Systeme distant - saisir le nom du serveur : ex : pop.wanadoo.fr - port 110)

Commandes POP3 minimales :

Valides dans l’état AUTORISATION (AUTHORIZATION)
USER nom
PASS mot-de-passe
QUIT

Valides dans l’état TRANSACTION
STAT
LIST [msg]
RETR msg
DELE msg
NOOP
RSET
QUIT

Commandes POP3 optionnelles :

Valides dans l’état AUTORISATION (AUTHORIZATION)
APOP nom somme-de-contrôle
Valides dans l’état TRANSACTION
TOP msg n
UIDL [msg]

Réponses POP3 :
+OK
-ERR

Il faut noter qu’à l’exception des commandes STAT, LIST et UIDL, la réponse donnée par le serveur POP3 à toute commande est significative avec seulement " +OK " et " -ERR ". Tout texte apparaissant après ces réponses peut être ignoré par le client.

Fichiers joints
Les fichiers joints sont inclus dans le message, codés au format MIME (sur 7 bits).
C'est à la charge du client mail de détecter le fichier joint, de l'extraire, de le décoder et de le mettre sur le disque au format de départ.
Avec la commande RETR vous verrez tout défiler à la suite, problabement une succession de caractères bizarres.
En fait un mail peut contenir 5 fichiers joints, tout est dans le même fichier texte.
A remarquer donc : si un fichier exe ou autre scr (virus par exemple) est joint au mail, tant qu'il n'a pas été décodé, c'est une suite de caractères inofensifs.
De là, tout l'intérêt qu'il y a à interroger le serveur avec ces commandes. Vous pouvez repérer les virus, au moment où ils sont encore inofensifs et les détruire directement sur le serveur.
Si le mail est un texte de 5 Ko et un fichier joint binaire de 50 Ko, l'ensemble sera envoyé sur le net sous forme d'un fichier texte d'environ 100 Ko. En effet on n'a pas 50+5=55Ko car le fichier binaire est codé sur 7 bits ce qui augmente considérablement sa taille.
En général le décodage du fichier joint est fait automatiquement, mais vous avez compris qu'on peut très bien concevoir un client mail qui conserve les fichiers joints ou se contente de les écrire sur le disque au format texte, inoffensif. A votre charge de l'examiner, de le détruire ou de le convertir si l'opération vous paraît sans danger.

Le protocole SMTP (Simple Mail Transfer Protocol)

- lancer telnet (Démarrer - Exécuter - telnet)
- se connecter au serveur SMTP
(Connexion - Systeme distant - saisir le nom du serveur : ex : smtp.wanadoo.fr - port 25)

Commandes SMTP

Hello (HELO site-émetteur)
Commence une session SMTP par une identification des deux parties. Le récepteur s'identifie dans sa réponse ;

Mail (MAIL FROM: expéditeur) Commence une nouvelle transaction. Spécifie l'expéditeur, pour le renvoi des messages d'erreur éventuels ;

Recipient (RCPT TO: destinataire)
Spécifie un destinataire. Cette procédure peut être répétée autant de fois que nécessaire. Si le destinataire n'est pas valide, un code d'erreur est renvoyé aussitôt ;

Data (DATA)
Envoie le message (en-tête + corps) terminé par une ligne ne contenant qu'un point.

Pour ne pas interférer avec le message à transmettre, toute ligne du message contenant un point en première position est modifiée en insérant un point supplémentaire en début. Ce point supplémentaire est supprimé par le récepteur (hidden dot algorithm) ;

Send (SEND FROM: expéditeur)
Commence une nouvelle transaction (de manière analogue à MAIL) pour envoyer un message sur un terminal ;

Send or mail (SOML FROM: expéditeur)
Commence une nouvelle transaction (de manière analogue à MAIL) pour envoyer un message sur un terminal ou dans une boîte aux lettres si le destinataire n'est pas connecté ;

Send and mail (SAML FROM: expéditeur)
Commence une nouvelle transaction (de manière analogue à MAIL) pour envoyer un message sur un terminal et dans une boîte aux lettres ;

Reset (RSET)
La transaction courante est annulée, l'ensemble du logiciel est réinitialisé, un nouveau message peut donc être envoyé sur le même canal ;

Verify (VRFY destinataire)
Demande au site récepteur de vérifier que le destinataire est une adresse valide ;

Expand (EXPN destinataire)
Demande au site récepteur, d'une part de vérifier que le destinataire est une adresse de liste de diffusion valide, et d'autre part de renvoyer les identités des membres de la liste ;

Help (HELP)
Help (HELP commande)
Renvoie la liste des commandes SMTP admises par le site récepteur ;

Noop (NOOP)
Ne fait rien ;

Quit (QUIT)
Termine la session SMTP ;

Turn (TURN)
Demande au site récepteur de devenir site émetteur. Le site émetteur devient site récepteur ;

-----

Exemple
Avant de détailler le protocole lui-même, examinons un exemple. Les commandes spécifiées par le site émetteur sont en gras, les réponses du site récepteur sont en caractères normaux.

220 shiva.jussieu.fr Sendmail 8.9.3/jtpda-5.3.2 ready at Tue, 6 Jul 1999 09:30:15 GMT
HELO soleil.uvsq.fr
250 shiva.jussieu.fr Hello soleil.uvsq.fr, pleased to meet you
MAIL FROM:
250 ... Sender ok
RCPT TO:
250 ... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
From: paul@uvsq.fr (Paul Ochon)
Subject: essai
To: jean@jussieu.fr (Jean Breille), "Jacques Selere"
Date: Tue, 6 Jul 1999 09:30:05 +0100

ceci est un essai
.
250 Mail accepted
QUIT

La première ligne (220 shiva.jussieu.fr...) est envoyée par le récepteur lorsque la communication est établie. Le programme qui implémente le protocole (ici sendmail) s'annonce. Il envoie un code numérique (220 signifie qu'il est disponible) qui lui seul a une signification. La suite, pour information seulement, indique le nom de la machine, le programme (sendmail), le numéro de version du programme (8.9.3) et de sa configuration (jtpda-5.3.2), et la date.

La deuxième ligne (HELO soleil.uvsq.fr) est transmise par l'émetteur. Il s'identifie en donnant le mot-clef HELO (avec un seul L) suivi de son adresse. La troisième ligne est envoyée par le receveur. Elle consiste en un code numérique (250 indique que l'action demandée est effectuée correctement) suivi de l'adresse du receveur. La suite est pour information seulement, elle est ignorée par les deux programmes.

Les quatre lignes suivantes (MAIL FROM jusqu'à 250 ) spécifient l'enveloppe.

La ligne suivante (DATA) indique au receveur que l'émetteur envoie le message proprement dit. Ce message est, comme nous l'avons vu, constitué de l'en-tête et du corps. Le message, après la réponse positive (code 354) du receveur, est envoyé par l'émetteur, suivi d'un point seul sur sa ligne. Le receveur répond ensuite par le code 250 signifiant que l'opération a réussi.

La dernière ligne est envoyée par l'émetteur. C'est le mot-clef QUIT qui précède la déconnexion.

Les en têtes
Le en tête sont des chaînes de caractères servant à informer l'utilisateur et le client mail. Comme elles sont plcées dans la zone DATA, elles ne font par partie du protocole.
Traditionnellement la zone DATA commence par une section d'en-têtes. Cette section se termine par une ligne vide. Parmi les en-têtes courants
From: Codage ISO, Identité expéditeur
To: Destinataire
Subject: Sujet du mail
Encore une fois tout ceci est facultatif et la syntaxe est la syntaxe habituelle. Rien n'est imposé et chaque logiciel de mail place ses en-têtes comme il veut ce qui provoque parfois des difficultés de décodage du côté du destinataire.

En résumé

Session POP
USER nom
PASS mot-de-passe
... Commandes POP ...
QUIT

Session SMTP
HELO site-émetteur
MAIL FROM: expéditeur
RCPT TO: destinataire
Data (DATA)
QUIT

Conclusion
Alors... vous me direz : mais pourquoi utiliser telnet alors qu'il y a des logiciels qui marchent très bien ?
parce qu'en deplacement cela permet de consulter ses mails sans avoir à configurer le logiciel du micro hôte, en plus cela ne laisse pas de trace.
En période de forte activité des virus, vous pouvez consulter vos emails à distance et les supprimer directement sur le serveur sans les rapatrier.
Remarques :
- si vous voulez envoyer un mail, le serveur SMTP à utiliser est celui du FAI du micro hôte.

Fichiers joints
Les fichiers joints sont inclus dans le message, codés au format MIME (sur 7 bits).
Insérer dans le corps du mail la ligne
filename=nomfichier
fichier codé au format MIME

Vous remarquerez ainsi une lacune du protocole SMTP : aucun mot de passe n'est requis pour s'identifier. Ainsi n'importe qui peut envoyer un mail à Monika en se faisant passer pour Bill Clinton et lui réclamer une gâterie bucale. S'il connait l'email de Bill et la fournit en adresse de retour, le Bill sera tout surpris de recevoir un courrier de Monika lui disant : Ok pour la gaterie moyennant un coup de pouce pour vendre le bouqin qu'elle ecrita sur le sujet.

Plus prosaiquement, cette faille est mise à profit par les virus qui s'emparent de votre annuaire et adressent a vos coapins des messages en se faisant passer pour vous. Outlook Express est très répandu et le format de son carnet d'adresses est hyper connu. Il suffit d'utiliser une autre carnet d'adresses où les champs seraient différents, dans un ordre différent pour dérouter le virus. Ce carnet n'est plus géré directement pat Outlook, mais un copier coller suffit pour récupérer l'adresse email de votre correspondant.

La prochaine version de SMTP prévoit d'ailleurs un mot de passe et un système d'accusé de réception qui pour le moment est à la discrétion du serveur.

Il existe aussi un autre protocole pour recevoir des fichiers : le protocole IMAP, utilisé par les navigateurs. C'est ce propotocle que vous retrouvez dans les messageries telles que Caramail.com. D'autres comme Ifrance.com offrent le choix entre POP et IMAP pour la consultation des mails.

Ams Mail comporte une fonction d'interrogation du serveur utilisant les commandes indiquées plus haut. Il suffit de cliquer sur des icônes pour visualier les en têtes des mails, les lire en entier avec fichiers joints inclus, les supprimer directement du serveur s'ils paraissent suspects. Il gère un annuaire. Bien entendu le format est très simple, mais personne ne se donnera la peine d'analyser le format d'annuaire d'une application si modeste juste utlisée par quelques personnes.

 

Logiciels en rapport
Ams Mail