diff options
author | Alban Gruin | 2017-01-24 09:46:24 +0100 |
---|---|---|
committer | Alban Gruin | 2017-01-24 13:22:45 +0100 |
commit | 1038c182c050c9357d769341c3ef9d11f2d173f3 (patch) | |
tree | bbf305d2f082a222ef84b8c55adfd5f71c320f46 /management/commands | |
parent | 684be8570b6e6c1c4c93ce991c4b91254906ae05 (diff) |
Envoi des mails de manière groupé pour ne pas ouvrir trop de connexions au smtp
Diffstat (limited to 'management/commands')
-rw-r--r-- | management/commands/sendmails.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/management/commands/sendmails.py b/management/commands/sendmails.py index 89c5c1b..1669bcc 100644 --- a/management/commands/sendmails.py +++ b/management/commands/sendmails.py @@ -1,7 +1,8 @@ from django.core.management.base import BaseCommand, CommandError -from django.core.mail import send_mail +from django.core.mail import send_mass_mail from django.utils import timezone from django.template import Context, loader +from django.conf import settings from edt.models import Group, Subscription, Course from edt.utils import get_week, group_courses @@ -21,6 +22,9 @@ class Command(BaseCommand): subscriptions = Subscription.objects.filter(active=True) content = {} + mails = [] + + print("Generating messages...") for subscription in subscriptions: if subscription.group.id not in content: courses = Course.objects.get_courses_for_group(subscription.group, begin__gte=start, begin__lt=end) @@ -31,7 +35,11 @@ class Command(BaseCommand): content[subscription.group.id] = template.render(context) footer = loader.get_template("mail_footer.txt") - context = Context({"token": subscription.token}) + context = Context({"admins": settings.ADMINS, "token": subscription.token}) mail_content = content[subscription.group.id] + footer.render(context) - # send content + mails.append(("{0} - {1} - Semaine {2}".format(subscription.group.timetable.name, subscription.group.name, week), mail_content, settings.DEFAULT_FROM_EMAIL, [subscription.email],)) + + print("Sending mails...") + send_mass_mail(mails) + self.stdout.write(self.style.SUCCESS("Done.")) |