fix(kfet): Récupère lors d'une erreur due à smtplib

This commit is contained in:
Tom Hubrecht 2023-06-14 20:56:25 +02:00
parent b32a07fc22
commit f97d339a1c

View file

@ -2,6 +2,7 @@
Gestion en ligne de commande des mails de rappel K-Fet. Gestion en ligne de commande des mails de rappel K-Fet.
""" """
import smtplib
from datetime import timedelta from datetime import timedelta
from django.core.management.base import BaseCommand from django.core.management.base import BaseCommand
@ -10,6 +11,14 @@ from django.utils import timezone
from kfet.models import AccountNegative from kfet.models import AccountNegative
def send_mail(neg: AccountNegative, stdout) -> None:
try:
neg.send_rappel()
stdout.write(f"Mail de rappel pour {neg.account} envoyé avec succès.")
except smtplib.SMTPException:
stdout.write(f"Erreur lors de l'envoi du mail de rappel pour {neg.account}.")
class Command(BaseCommand): class Command(BaseCommand):
help = ( help = (
"Envoie un mail de rappel aux personnes en négatif.\n" "Envoie un mail de rappel aux personnes en négatif.\n"
@ -39,12 +48,10 @@ class Command(BaseCommand):
) )
for neg in accounts_first_mail: for neg in accounts_first_mail:
neg.send_rappel() send_mail(neg, self.stdout)
self.stdout.write(f"Mail de rappel pour {neg.account} envoyé avec succès.")
for neg in accounts_periodic_mail: for neg in accounts_periodic_mail:
neg.send_rappel() send_mail(neg, self.stdout)
self.stdout.write(f"Mail de rappel pour {neg.account} envoyé avec succès.")
if not (accounts_first_mail.exists() or accounts_periodic_mail.exists()): if not (accounts_first_mail.exists() or accounts_periodic_mail.exists()):
self.stdout.write("Aucun mail à envoyer.") self.stdout.write("Aucun mail à envoyer.")