BotMail a pour but de simplifier l'envoi d'emails avec lettres à plusieurs destinataires depuis n'importe quel système d'exploitation (par exemple : pour envoyer une demande d'embauche à plusieurs entreprises).
Ainsi, si une lettre est jointe à l'email, elle s'adaptera (à partir d'un fichier Excel/Calc) au nom du destinataire, à son adresse, à son numéro de téléphone, et à la date (cf : formatage du fichier Excel/Calc).
Pour cela, deux versions existent :
- BotMail.py est la version terminal.
- BotMailGUI.py est la version graphique (cette deuxième version est dédiée aux personnes ne sachant pas développer du tout et permet d'être compilée pour en faire un fichier
.exe, par exemple).
Le fonctionnement de BotMail est assez simple :
-
Récupération des informations contenues dans un fichier Excel/Calc (cf : Formatage du fichier Excel/Calc).
-
Renseignement des informations selon une en-tête très spécifique (cf : Formatage du fichier Excel/Calc) dans la (ou les) lettre donnée (cf : Formatage du document Word/Writer).
-
Après modification de la (ou des) lettre(s), celle-ci est convertie au format PDF.
-
Le sujet, le (ou les) destinataire(s), le corps ainsi que les fichiers PDF générés et ajoutés en complément sont intégrés à l'email (uniquement au format PDF).
-
Un blocage automatique est effectué ici pour permettre de vérifier si le document généré est bien sous le format voulu. Cela permet à l'utilisateur de s'assurer qu'aucune erreur ne s'est glissée avant l'envoi de l'email.
Par exemple : si la modification de la lettre s'est mal déroulée, le blocage permet à l'utilisateur de vérifier si le PDF s'est bien généré. Si ce n'est pas le cas, il répond "Non" à la question "Voulez-vous envoyer cet email à XXX ?". -
Enfin, si tout est correct pour l'utilisateur, il suffit de confirmer l'envoi. L'email est alors envoyé avec l'adresse email de l'utilisateur.
Il existe aussi un raccourci permettant d'envoyer sans redemander de confirmation à tous les prochains destinataires (à la question "Voulez-vous envoyer cet email à XXX ?", le choix "Oui pour tous"). -
Si l'email a bien été envoyé, sans aucune erreur, l'inscription "Envoyé" sera ajoutée à la colonne "XXP" du fichier Excel/Calc de résultat (cf : Formatage du fichier Excel/Calc).
Par sécurité, tout problème survenant dans le déroulement du programme BotMail entraînera automatiquement son arrêt.
L'erreur sera également ajoutée à la colonne "XXP" dans le fichier Excel/Calc de résultats, ce qui permettra de savoir quels destinataires n'ont pas reçu l'email (cf : Formatage du fichier Excel/Calc).
La version utilisée pour la développement de BotMail est Python 3.9.13.
- Importation du projet :
git clone https://github.com/G0ldenDragon/BotMail.git - Activation du
.venvsous Windows :.venv\Scripts\activate
pip freeze > uninstallation.txt
pip uninstall -r uninstallation.txt -y
pip install -r ./requirements.txtCette catégorie recense toutes les informations à renseigner pour l'utilisation de BotMail.
-
Le nom du fichier Excel/Calc doit comporter l'une des extensions supportées :
- Actuellement supportées :
.csv,.xls,.xlsx,.ods
(cf : dansConstants.py:CORRECT_SHEET_EXTENSIONS, les extensions Excel/Calc supportées par BotMail).
- Actuellement supportées :
-
⚠️ ATTENTION : Une en-tête doit être présente sur la première ligne du fichier.- 📧 Écrire "XXE" dans la première ligne d'une colonne indique à BotMail que les lignes suivantes de cette colonne correspondront à l'adresse email des destinataires auxquels un email sera envoyé. (Pour chaque adresse email renseignée dans cette colonne, un email sera envoyé.)
- 🏭 Écrire "XXN" dans la première ligne d'une colonne indique à BotMail que les lignes suivantes de cette colonne correspondront au nom du destinataire.
- 📪 Écrire "XXA" dans la première ligne d'une colonne indique à BotMail que les lignes suivantes de cette colonne correspondront à l'adresse postale du destinataire.
- ☎️ Écrire "XXT" dans la première ligne d'une colonne indique que les lignes suivantes de cette colonne correspondront au numéro de téléphone du destinataire.
Exemple d'en-tête
✅ XXP 📧 XXE 🏭 XXN 📪 XXA ☎️ XXT Résultat d'un précédent envoi Adresse email du destinataire Nom du destinataire Adresse postale du destinataire Numéro de téléphone du destinataire Envoyé example@example.com ExampleEnterprise 92 avenue XXX - Paris +33 7 XX XX XX XX
-
Le nom du document Word/Writer doit comporter l'une des extensions supportées :
- Actuellement supportées :
.docx
(cf : dansConstants.py:CORRECT_DOCUMENT_EXTENSIONS, les extensions Word/Writer supportées par BotMail).
- Actuellement supportées :
-
De la même manière que le fichier Excel/Calc, écrire :
- 📧 XXE à l'emplacement de l'adresse email du destinataire dans le document pour qu'elle soit remplacée automatiquement.
- 🏭 XXN à l'emplacement du nom du destinataire dans le document pour qu'il soit remplacé automatiquement.
- 📪 XXA à l'emplacement de l'adresse postale du destinataire dans le document pour qu'elle soit remplacée automatiquement.
- ☎️ XXT à l'emplacement du numéro de téléphone du destinataire dans le document pour qu'il soit remplacé automatiquement.
- 📅 AJOUT ℹ️ : XXD à l'emplacement de la date du jour dans le document pour qu'elle soit remplacée automatiquement (format : 10 janvier 2025).
- Pour permettre l'export obligatoire au format PDF pour l'envoi des emails, LibreOffice Writer doit être installé afin de générer les fichiers.
- Tous les fichiers à joindre à l'email doivent avoir pour extension
.pdf.
-
Adresses email d'envoi actuellement supportées par BotMail :
- Gmail
- Yahoo
- Outlook
-
Un code d'application est nécessaire pour que BotMail puisse utiliser l'adresse email de l'expéditeur.
- Gmail : Documentation non-officielle ici ou obtention du code sur site officiel ici (Situé dans le compte Google dans "Mots de passe des applications").
- Yahoo : Documentation officielle ici
- Outlook : Documentation officielle ici
-
Pour la version BotMail sur Terminal uniquement, un fichier ayant pour extension
.txtdoit être créé et utilisé pour contenir le corps de l'email.
- Développement de la partie Interface Homme-Machine pour des personnes non initiées.
- Rendre la lecture des fichiers CSV plus flexible (en supprimant la sensibilité à la casse). → Mise à jour vers la librairie Pandas envisagée.
- Permettre la personnalisation du format de la date.
- Supprimer la nécessité d'installer LibreOffice Writer pour la génération des PDFs. → Mise à jour vers la librairie FPDF envisagée.
- Permettre d'envoyer des emails avec des pièces jointes autres que des fichiers PDF (par exemple, des documents
.docx).