PSR SE2a4 2022/2023 G8 : Différence entre versions

De Wiki d'activités IMA
(PARTIE 2: SMTPout)
(PARTIE 3: Tests)
Ligne 46 : Ligne 46 :
 
=''PARTIE 3: Tests''=
 
=''PARTIE 3: Tests''=
  
Avant tout, il faut '''make clean debug''' à la racine du projet.<br>
+
*Avant tout, il faut '''make clean debug''' à la racine du projet.<br>
 
<br>
 
<br>
Il faut aussi lancer les serveurs SMTPin et SMTPout dans leurs dossiers spécifiques:<br>
+
*Il faut aussi lancer les serveurs SMTPin et SMTPout dans leurs dossiers spécifiques:<br>
 
   ''./SMTPin -l''<br>
 
   ''./SMTPin -l''<br>
 
   ''./SMTPout -i eth0 -u map.txt''<br>
 
   ''./SMTPout -i eth0 -u map.txt''<br>
  
Test SMTPin : (Dans la VM)<br>
+
*Test SMTPin : (Dans la VM)<br>
 
   ''nc localhost 25''<br>
 
   ''nc localhost 25''<br>
 
   ''HELO ouss''<br>
 
   ''HELO ouss''<br>
Ligne 65 : Ligne 65 :
 
   ''QUIT''<br>
 
   ''QUIT''<br>
 
<br>
 
<br>
Test SMTPout : (Sur la machine polyetch)<br>
+
*Test SMTPout : (Sur la machine polyetch)<br>
 
   ''nc 193.48.57.180 25''<br>
 
   ''nc 193.48.57.180 25''<br>
 
   ''HELO ouss''<br>
 
   ''HELO ouss''<br>
Ligne 80 : Ligne 80 :
 
<br>
 
<br>
 
<br>
 
<br>
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'').
+
*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'').

Version du 14 juin 2023 à 13:06

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).