aboutsummaryrefslogtreecommitdiff
path: root/management
diff options
context:
space:
mode:
authorAlban Gruin2017-01-24 09:46:24 +0100
committerAlban Gruin2017-01-24 13:22:45 +0100
commit1038c182c050c9357d769341c3ef9d11f2d173f3 (patch)
treebbf305d2f082a222ef84b8c55adfd5f71c320f46 /management
parent684be8570b6e6c1c4c93ce991c4b91254906ae05 (diff)
Envoi des mails de manière groupé pour ne pas ouvrir trop de connexions au smtp
Diffstat (limited to 'management')
-rw-r--r--management/commands/sendmails.py14
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."))