Auteurs : Johan Mikami, Lucas Hussain
Ce projet Java vise à créer un outil permettant d'envoyer des emails de plaisanterie à des groupes de destinataires via le protocole SMTP. Il offre la possibilité de configurer facilement les groupes cibles et les messages de plaisanterie, tout en respectant les bonnes pratiques de gestion des e-mails. L'outil permet également une intégration avec un serveur SMTP fictif pour des tests sans envoi réel d'e-mails.
docker run -d -p 1080:1080 -p 1025:1025 maildev/maildev
Ouvrez un navigateur et accède à l'interface MailDev via http://localhost:1080.
Utilisez cette interface pour visualiser les e-mails envoyés.
Éditez le fichier email_address.txt pour ajouter des adresses mails voulues, une par ligne.
Ajoutez vos messages de plaisanterie dans le fichier prank_message.json.
Il contient une liste d'élement avec les attributs "subject" et "content".
Ouvrez un terminal ou une invite de commande.
Assurez-vous d'avoir accès au programme java depuis le terminal (prankmail-1.0-jar-with-dependencies.jar).
Utilisez la commande maven pour compiler le code s'il ne l'est pas déjà :
mvn clean package
Le fichier exécutable .jar se trouvera dans le dossier target.
Ensuite, pour exécuter le .jar, utilisez la commande java et passez les arguments nécessaires :
java -jar <jarFile> <emailFile> <messageFile> <numberOfGroups> <serverAddress> <serverPort>
Exemple :
java -jar ./target/prankmail-1.0-jar-with-dependencies.jar ./email_address.txt ./prank_message.json 2 127.0.0.1 1025
Notre programme contient 5 classes principales outre la classe Main :
FileReader : Lit les fichiers de configuration (adresses e-mail et messages de plaisanterie) et retourne les données lues.
EmailMessage : Récupère les données lues par FileReader et crée les messages e-mail forgés à partir de ces données.
Group : Représente un groupe d'e-mails avec un message de plaisanterie, la première adresse e-mail du groupe étant l'expéditeur et les autres étant les destinataires.
SMTP Client : Gère une connexion avec un serveur SMTP fictif pour un groupe donné et envoie le message de plaisanterie.
Une fois le socket créé, il débutera la communication avec un "EHLO [serveraddress]".
Ensuite, il enverra un "MAIL FROM: " pour chaque groupe.
Puis, il enverra un "RCPT TO: " pour chaque destinataire du groupe.
Enfin, il enverra un "DATA" pour chaque groupe et enverra le message de plaisanterie.
Il terminera la communication avec un "QUIT".
Controller : Gère la logique principale du programme, génère les groupes et lance les campagnes de plaisanterie.
Main : Point d'entrée du programme, récupère les arguments passés en ligne de commande, crée et lance le Controller.
ManPage : Affiche le manuel d'utilisation du programme avec les arguments à passer en ligne de commande.