IMA2a4 2019/2020 EC1 : Différence entre versions
(→Documents) |
(→Documents) |
||
Ligne 50 : | Ligne 50 : | ||
== Documents == | == Documents == | ||
[[Fichier:IMAP_v1.zip]] | [[Fichier:IMAP_v1.zip]] | ||
+ | |||
+ | |||
[[Fichier:IMAP_v2.zip]] | [[Fichier:IMAP_v2.zip]] |
Version du 22 juillet 2019 à 22:15
Sommaire
Présentation du projet
Contexte
La validation du semestre S8 dépend de la validation de cette épreuve complémentaire.
Objectif
Le but est de développer un système de messagerie personnelle très léger. Vous développerez plus particulièrement un serveur IMAP fonctionnant en IPv4 et en IPv6.
Description du projet
Vous développerez ce serveur IMAP sur le même modèle que le projet système réseau, en particulier concernant l'aspect structuré et multi-threadé.
Quelques directives spécifiques au serveur IMAP :
- Pas de gestion de l'identification. Le serveur n'écoute que sur l'interface loopback. Donc seul un utilisateur ayant accès à la machine pourra utiliser le serveur IMAP. Pour un accès à distance, un tunnel créé par l'option
-L
de l'utilitairessh
sera utilisé. Dans la phase d'identification du client IMAP seul le nom d'utilisateur sera exploité pour retrouver les messages. Le mot de passe sera lu sans effectuer de contrôle. - Vous utiliserez le même format de stockage des messages que celui décrit dans l'épreuve complémentaire dont le sujet est le développement d'un serveur SMTP. Les drapeaux des messages sont stockés dans le fichier d'extension
.status
en toutes lettres et un seul par ligne. Lors de la manipulation d'un message (ou de ses drapeaux) en lecture ou en écriture vous bloquerez les fichiers avec la fonction systèmelockf
. Prévoyez une option-s
ou--spool
permettant de donner le nom du répertoire racine des boites aux lettres (/var/spool/mail
par défaut). - Vous implanterez un serveur IMAP version 2 tel que défini par la RFC 1176. Vous implanterez en particulier les commandes
NOP
,LOGIN
,LOGOUT
,SELECT
,CHECK
,EXPUNGE
,COPY
,FETCH
etSTORE
. Tenez-vous en aux 5 drapeaux systèmes.
Validation de l'épreuve
L'épreuve est validée si les sources sont lisibles et si le serveur supporte un test. Le test en question consistera à créer une arborescence de messages, à lancer le serveur IMAP et à vérifier avec l'application thunderbird
si le serveur IMAP se comporte comme attendu par le client.
Matériel nécessaire
Aucun.
Planning prévisionnel
Travail effectué
SEMAINE 1 :
Durant la première semaine j'ai fait des recherches pour prendre en main le projet, comprendre le fonctionnement du protocole IMAP qui est un protocole qui permet d'accéder à ses courriers électroniques directement sur les serveurs.
- J'ai cherché à comprendre la fonctionnement des fonctions
NOP
,LOGIN
,LOGOUT
,SELECT
,CHECK
,EXPUNGE
,COPY
,FETCH
etSTORE
- Et aussi le fonctionnement des 5 drapeaux systèmes
RECENT
,SEEN
,ANSWERED
,FLAGGED
,DELETED
. - Ensuite, en reprenant et modifiant le serveur TCP qui a été crée pour le premier projet S&R. J'ai commencé à faire la réalisation du serveur IMAP2.
Le client se connecte et j'arrive a obtenir le TAG (A001,A002..) ainsi que la fonction (LOGIN, SELECT, FETCH...) et les arguments (ex: login mdp).
Il faut maintenant faire le traitement des information obtenu.
Pour la suite je vais commencer les fonctions "simples" du type LOGIN et LOGOUT.