-
Notifications
You must be signed in to change notification settings - Fork 11
/
send-mail.py
79 lines (64 loc) · 2.58 KB
/
send-mail.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import os
import django
import argparse
import logging
from django.core.mail import send_mail
"""
Script d'envoi de mails pour Geocontrib
Contexte :
---------
Afin de simplifier le débogage des e-mails, y compris dans des situations non standard,
ce script a été créé pour envoyer des e-mails de la même manière que Geocontrib.
Il utilise les mêmes configurations et envoie via les mêmes outils, tout en permettant
la personnalisation de certains paramètres comme le destinataire.
L'objectif principal est de permettre une exécution facile depuis la console Docker de Geocontrib
pour envoyer des e-mails de test.
Utilisation :
-----------
1. Assurez-vous que vous êtes dans l'environnement Docker de Geocontrib.
2. Exécutez le script comme suit :
python send-mail.py --to [adresse_email_destinataire] --subject "[sujet_du_mail]"
Exemple :
--------
python send-mail.py --to [email protected] --subject "ceci est un test"
Note :
-----
Le script utilisera la configuration e-mail par défaut de Geocontrib pour l'expéditeur et
d'autres paramètres. Vous n'avez besoin de fournir que le destinataire et le sujet.
Auteur : Timothée Poussard
Date : 27/10/2023
"""
# Configuration du logging
logging.basicConfig(level=logging.DEBUG, format='[%(asctime)s] %(levelname)s: %(message)s')
logger = logging.getLogger(__name__)
# Initialisation de Django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
try:
django.setup()
logger.debug("Django initialized successfully.")
except Exception as e:
logger.error(f"Error initializing Django: {e}")
exit(1)
def main():
logger.debug("Starting main function...")
parser = argparse.ArgumentParser(description='Send an email using Django.')
parser.add_argument('--to', required=True, help='Recipient email address.')
parser.add_argument('--subject', required=True, help='Email subject.')
parser.add_argument('--message', default='', help='Email message.')
args = parser.parse_args()
logger.debug(f"Arguments parsed: to={args.to}, subject={args.subject}, message={args.message}")
logger.debug("Preparing to send email...")
try:
send_mail(
args.subject,
args.message,
None, # En laissant l'expéditeur à None, Django utilisera DEFAULT_FROM_EMAIL
[args.to],
fail_silently=False,
)
logger.info(f"Email sent successfully to {args.to} with subject '{args.subject}'.")
except Exception as e:
logger.error(f"Error sending email: {e}")
logger.debug("Exiting main function...")
if __name__ == "__main__":
main()