protocole POP : post office protocol


POP ( post office protocol ) ( la version standard est POP3, definie dans la RFC 1939) est la manière dont les clients email récupèrent les emails sur les serveurs internet. Comme la plupart des protocoles internet, il est basé sur la ligne de commande, c'est à dire que toutes les operations sont faites à partir d'un texte de commandes qui est envoyé au serveur. Il est donc tres simple de simuler un client à partir d'une connection telnet sur le serveur ( et le bon port ), il est donc aussi facile d'écrire un client spécialisé à certaines taches basées sur le mail.

Le serveur POP3 écoute sur le port 110, Si vous faites un telnet vers un serveur POP3 sur le port 110, vous obtiendrez quelque chose du genre :
   +OK POP3 pop3.serveur.com v4.38 server ready
La ligne commence par un indicateur d'état +OK. Chaque réponse commence par +OK ou -ERR. Faciiiile !!

Au début de la session, vous êtes en mode login. Les seules commandes autorisées sont USER, PASS et QUIT. Donc pour vous logger :

        > USER nicolas
        > PASS coucou
Faciiiile (bis) !!

Une fois que vous etes loggés, vous avez accés à votre mailbox, il ne reste plus qu'à utiliser les commandes suivantes:

STAT Cette commande renvoie une ligne avec 2 nombres : le premier correspond au nombre de messages, le second à la taille totale des messages. En fait, cette commande ne nous sert pas a grand chose !!.

LIST LIST donne le contenu de la mailbox de la façon suivante:
LIST
+OK Mailbox contents follow
1 7774
2 513
3 10493
.
La dernière ligne est simplement un point, méthode assez standard dans les protocoles sur le mail. Chaque ligne est composée du numéro du message et de sa taille. Attention les numéros ne sont pas forcément sequentiels !! Si vous en supprimez un il disparait simplement.

RETR msg RETR récupère un message. Utilisez le numéro fournit par LIST. Vous allez recevoir l'entête du message, puis le contenu et enfin une ligne avec simplement un point. Si le contenu a une ligne avec simplement un point, il sera doublé, à vous donc de corriger l'affichage pour supprimer les doublons inutiles.

DELE msg DELE supprime un message, mais il ne sera réellemnt supprimer qu'au moment de la commande QUIT, vous pouvez donc le récupérer avec la commande RSET.

TOP msg n TOP renvoie l'entête du message plus les n premières lignes de son contenu. n peut etre nulle. Cette commande est optionelle mais généralement supportée.

QUIT QUIT termine la session et supprime les messages marqués par DELE.



Voila ça devrait vous suffire pour faire plein de trucs rigolos, à commencer par écraser par erreur les mails sur votre serveur :-) .

Une dernière info quand même. POP étant un protocole texte sur une connexion telnet, si vous vous authentifié en utilisant la méthode USER/PASS, votre mot de passe circule en claire sur le réseau. Vous pouvez donc utiliser la commande APOP (facultative et donc pas toujours supportée par le serveur) qui s'utilise de la façon suivante: APOP login digest. Le digest est la signature MD5 de votre mot de passe et du tag renvoyé par le serveur au moment de la connexion. (voir RFC pour plus de détails)