From 1038c182c050c9357d769341c3ef9d11f2d173f3 Mon Sep 17 00:00:00 2001
From: Alban Gruin
Date: Tue, 24 Jan 2017 09:46:24 +0100
Subject: Envoi des mails de manière groupé pour ne pas ouvrir trop de
 connexions au smtp

---
 management/commands/sendmails.py | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

(limited to 'management')

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."))
-- 
cgit v1.2.1