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

De Wiki d'activités IMA
(PARTIE 3: Tests)
(PARTIE 3: Tests)
Ligne 63 : Ligne 63 :
 
   ''.''<br>
 
   ''.''<br>
 
   ''QUIT''<br>
 
   ''QUIT''<br>
<br>
 
 
<br>
 
<br>
 
Test SMTPout : (Sur la machine polyetch)<br>
 
Test SMTPout : (Sur la machine polyetch)<br>
Ligne 77 : Ligne 76 :
 
   ''.''<br>
 
   ''.''<br>
 
   ''QUIT''<br>
 
   ''QUIT''<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'').

Version du 14 juin 2023 à 12: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).