PSR SE2a4 2022/2023 G8

De Wiki d'activités IMA
Révision datée du 14 juin 2023 à 13:05 par Onaimi (discussion | contributions) (PARTIE 1: SMTPin)

INTRODUCTION

  • Connexion à la machine virtuelle :
  ssh root@193.48.57.180


  • Installation du compilateur:
  apt update
apt install gcc


  • Ci-joint la dernière version du projet:

Fichier:Projet.zip

PARTIE 1: SMTPin

  • Dans le fichier "in.c", nous nous assurons du bon fonctionnement de la fonction de gestion de courriels. => Ajout else{break;} pour arrêter l'envoi des mails.


  • Supprimer le fichier "mx.c". Il est inutile de garder le fichier car ce dernier est implémenté dans un autre dossier.


  • Pour Debugger SMTPin, nous avons ajouté des printf pour le suivi.
 #ifdef DEVERMINE
printf("statut =%d\n", statut);
printf("succes =%d\n", succes);
printf("code =%d\n", code);
#endif
  • Ce qui nous permet de retrouver : ACCUEIL_CODE 220 / CONTINUE_DATA_CODE 354 / SUCCES_QUIT_CODE 250 et de les modifier dans les librairies ("smptp_private.h").
  • Ne pas oublier de changer les variables globales dans "smtp.c"

PARTIE 2: SMTPout

- Dans le fichier "out.c", nous déplaçons Maildir/tmp dans Maildir/new

 char nouveau_fichier[MAX_CHEMIN];
sprintf(nouveau_fichier,"%s/%s/%s/%Id_%010d",dossier,id,MAILDIR_NEW,capt,pid,messages);
rename(fichier, nouveau_fichier);


- Il faut lancer les serveurs SMTPin et SMTPout sur différents ports (!= du port 25) => Nous configurons SMTPout en eth0 et SMTPin en loopback.

Pour ce faire :
- Dans "SMPTout/args.h", nous ajoutons à la structure smtp_config une variable interface.

 char interface[CONFIG_MAX_INTERFACE];

- Dans "SMPTout/args.c", ajouter "interfaces" dans la structure options:

 {"interfaces", required_argument,0, 'i'},

- Dans "SMPTout/args.c", ajouter le case interface dans le switch:

 case 'i':
strncpy(config->interface,optarg,sizeof(config->interface)-1);
break;

- Dans "SMTPout/out.c":

 else if(config.interface!=NULL) interface = config.interface;

PARTIE 3: Tests

Avant tout, il faut make clean debug à la racine du projet.

Il faut aussi lancer les serveurs SMTPin et SMTPout dans leurs dossiers spécifiques:

 ./SMTPin -l
./SMTPout -i eth0 -u map.txt

Test SMTPin : (Dans la VM)

 nc localhost 25
HELO ouss
MAIL FROM: root@fonduesavoyarde2.site
RCPT TO: oussama.naimi@polytech-lille.net
DATA
SUBJECT: <Test>
FROM: <root@fonduesavoyarde2.site>
TO: <oussama.naimi@polytech-lille.net>
<Texte Mail>
.
QUIT


Test SMTPout : (Sur la machine polyetch)

 nc 193.48.57.180 25
HELO ouss
MAIL FROM: oussama.naimi@polytech-lille.net
RCPT TO: root@fonduesavoyarde2.site
DATA
SUBJECT: <Test>
FROM: <oussama.naimi@polytech-lille.net>
TO: <root@fonduesavoyarde2.site>
<Texte Mail>
.
QUIT




Nous pouvons envoyer des mails de la VM sur la boite polytech mais nous ne pouvons recevoir de mails que de la machine polytech (en nc 193.48.57.180 25).