Le protocole POP3
09/02/2005
 Christian CALECA 
Liste des cours

L'application

Accueil ] [ Fonctionnement ] [ Les commandes ] [ L'application ]


Faisons le point...

En fait, quelque soit le client de messagerie dont vous disposez, il ne sert en quelque sorte que de "frontal" à une session TELNET. Pour le reste, il ne fera que sauvegarder le texte de vos messages en local, dans des répertoires que vous aurez créé dans ce but.

Si vous voulez vous amuser un peu avec Outlook Express, dans le menu Outils/options, choisissez l'onglet "Maintenance" et cochez la case "Courrier" dans le paragraphe "Dépannage".

Vous obtiendrez une trace du dialogue avec le serveur POP dans un fichier nommé "pop3.log", placé quelque part sur votre machine. C'est un peu vague, mais ça dépend de l'O.S. et de la façon dont vous l'avez configuré.

Pour une configuration standard de Outlook Express 5 sur Windows NT 4, ce fichier se trouve au bout du chemin suivant:

C:\WINNT\Profiles\<votre répertoire>\Données d'applications\Identities\{<une clé ésotérique>}\Microsoft\Outlook Express

Le plus simple est de faire une recherche de pop3.log sur le disque système.

Le talon d'Achille

Imaginons que vous ayez dans votre boîte aux lettres une cinquantaine de messages, dont certains revêtent un caractère d'urgence. Normalement, dans ce cas là, votre connexion à l'Internet devient subitement pourrie, le pourcentage de paquets perdus augmente considérablement, les "time out" réinitialisent la connexion et, pour satisfaire à la loi de Murphy, tout au début de la liste, vous avez un énorme message de type spam plein de HTML, ou avec une pièce jointe bien grasse du style de la dernière blague cochonne illustrée qu'un de vos collègues a trouvée quelque part et n'a pas résisté à l'envie de vous transmettre. Ce message, vous n'arrivez jamais à le télécharger et du coup, vous ne pouvez pas lire les autres.

Pas de panique, TELNET peut vous sortir d'affaire, comme nous l'avons vu plus haut. Mais TELNET n'est pas très "convivial", surtout avec le terminal fourni dans Windows. Vous pouvez alors vous tourner vers i-mail, un "freeware" orienté dans ce sens. Cette application offre quelques avantages :

Elle a cependant, à mon sens, quelques défauts :

J'ai donc décidé de me construire mon propre outil, que j'ai appelé "GestPOP3". Cet outil dispose de quelques avantages :

Mais il a également quelques défauts :

GestPOP3 : Présentation

GestPOP3 est une application win32 qui fonctionne sous Windows 95, 98, NT 4 et 2000. 

La fenêtre principale contient par défaut trois autres fenêtres:

La liste des messages dans la BAL

Cette fenêtre contiendra autant de lignes que de messages entassés dans votre boîte aux lettres, avec leur numéro d'ordre, leur taille, l'auteur, le sujet et la date.

Détail de l'en-tête ou du message

Cette fenêtre contiendra la totalité de l'en-tête d'un message sélectionné dans la liste ou tout le message si vous décidez de le lire, comme nous le verrons plus loin.

Le fenêtre "Debug"

Cette fenêtre contient toute la trace du dialogue avec le serveur POP. A priori, elle n'est pas primordiale et vous pourrez décider de ne pas l'afficher.

debug

Gestpop3 : Les commandes de la fenêtre principale

Créer un compte

La première chose à faire est de définir les caractéristiques des comptes POP que vous voulez gérer.

dialogue L'intitulé du compte est un texte explicite destiné à identifier ce compte. Ce texte apparaîtra dans la liste déroulante.

Le Serveur peut être identifié par son nom (pop.wanadoo.fr) ou par son adresse IP (193.252.19.179).

Le nom d'utilisateur est généralement la partie gauche de votre adresse.

Le mot de passe ...

Vous pouvez créer autant de comptes que vous le souhaitez. Comme ces informations seront sauvegardées dans un fichier "en clair", vous avez la possibilité de ne pas donner le mot de passe (c'est la seule information manquante qui sera tolérée). Dans ce cas, chaque fois que vous déciderez de gérer ce compte, l'application vous demandera de saisir le mot de passe. Il ne sera jamais enregistré sur disque.

Détruire un compte

Il suffit de cliquer sur le bouton "détruire un compte" pour que le compte sélectionné dans la liste déroulante soit détruit (après confirmation).

Fenêtre "Debug"

Ce bouton à deux états permet d'afficher ou de cacher la fenêtre de trace. Par défaut il est activé.

Fenêtrage automatique

Ce bouton, également à deux états, permet de placer les fenêtres filles dans une position prédéfinie, qui se redimensionnera automatiquement avec la fenêtre principale. Dans cette configuration, il n'est pas possible de modifier l'apparence des fenêtres filles, si ce n'est de faire apparaître ou disparaître le fenêtre "Debug". Cette option est définie par défaut, mais vous pouvez la désactiver si vous le souhaitez.

Ouvrir/Fermer la connexion

Ce bouton, toujours à deux états, permet d'ouvrir ou de fermer une connexion sur le serveur POP sélectionné dans la liste déroulante.

Dans un premier temps, les actions suivantes se déroulent automatiquement:

  • La connexion TCP est établie sur le port 110 (port par défaut de POP3)
  • L'identification de l'utilisateur est faite.
  • La commande STAT est exécutée. Elle permet de connaître le nombre de messages en attente ainsi que le volume de données occupé sur le serveur.
  • Si la file d'attente est vide, la connexion est automatiquement fermée.
  • Si des messages sont présents, les actions suivantes sont exécutées:
    • La commande LIST, qui permet d'extraire une liste donnant pour chaque message en attente son numéro d'ordre et sa taille. Ces informations sont reportées dans les colonnes 0 et 1 de la grille de la fenêtre "liste des messages".
    • Pour chaque message existant, la commande TOP n 1 (n étant l'index du message) est exécutée de manière à récupérer l'en-tête du message et sa première ligne. Les informations "From", "Subject" et "Date" sont extraites et affichées dans les colonnes 2, 3 et 4 de la liste.
      Tous ces en-têtes sont enregistrés en mémoire et sont conservés jusqu'à la déconnexion.

GestPOP3: Actions sur les messages

Une fois cette liste remplie, vous avez la main pour agir. Vous pouvez :

pop3

Afficher un en-tête

(Je vous arrête tout de suite, en-tête est bien un nom masculin, cf. le micro-Robert, "nouvelle édition" de 1988).

Les en-têtes ont déjà été lus, ils sont en mémoire et vous pouvez les étudier sans que cela vous fasse encore perdre du temps avec votre connexion moisie. Ces en-têtes, qui figurent par ailleurs dans la trace de la fenêtre "Debug", pourront être affichés un à un dans la fenêtre de gauche, si l'on sélectionne le message dans la liste et que l'on clique sur le bouton "Afficher l'en-tête".

Lire un message

Dans ce cas, vous allez lancer la commande RETR n qui a pour but de lire la totalité du message "n". Attention à ne pas partir dans une galère inutile, encore qu'ici, vous devez normalement pouvoir mettre fin proprement à la connexion. Je n'ai pas pu tester cette possibilité, il n'y a pas eu de problèmes de connexion sur pop.wanadoo.fr pendant tout le temps que j'ai écrit cette application, l'opération est théoriquement réalisable.

Détruire un message

Ce bouton exécutera (après confirmation) le commande DELE n qui signale au serveur qu'il faut détruire le message "n". On suppose que vous savez ce que vous faites, il n'y a pas de retour en arrière possible. Bien qu'une commande existe pour cela, elle n'est pas mise en oeuvre dans GestPOP3.

GestPOP3: La barre de statut

La barre de statut affiche quatre informations :

L'état de la connexion

Cet état est rafraîchi toutes les 200 ms (environ), ce qui permet de constater d'éventuels problèmes.

La dernière commande ou réponse.

Permet de savoir où l'on en est, même sans afficher la fenêtre Debug.

l'Etat de la boîte

Le nombre de messages ainsi que le volume occupé sur le serveur.

GestPOP3: Téléchargement

Si je vous parle de cette application, c'est que vous pouvez bien entendu l'essayer, voire l'adopter.

Le code source

L'application a donc été écrite en Visual Basic 6.0 Edition Entreprise, mais l'édition Professionnelle doit suffire. L'édition "Initiation" n'ira pas, il y manque le composant "Winsock".

Le projet  est téléchargeable sous la forme d'un fichier zip auto extractible: gestpop3src.exe. Laissez décompresser dans le répertoire "TEMP", vous obtiendrez un répertoire intitulé "gestpop3src" qui contient l'intégralité du projet.

Le paquetage d'installation

Le paquetage d'installation est également téléchargeable sous forme d'un fichier zip auto extractible: gestpop3exe.exe. Laissez également décompresser dans le répertoire TEMP, vous obtiendrez un répertoire nommé "gestpop3install" dans lequel vous trouverez trois fichiers:

  • Setup.lst    En lisant ce fichier avec NOTEPAD, vous pourrez peut-être décrypter la liste des composants qui vont être ajoutés sur votre machine.
  • GestPOP3_1.CAB qui est le fichier compressé contenant tout ce qu'il faut installer
  • Setup.exe  qui est l'installateur à exécuter.

GestPOP3 : Avertissements

GestPOP3 : Organisation fonctionnelle

Pour ceux qui voudraient se plonger dans le source, voici en gros comment le programme est organisé :


Précédente ] [ Accueil ]