From 2906f1d74204771dbba3f91187b8042987bb5923 Mon Sep 17 00:00:00 2001 From: Tanner Prestegard <tanner.prestegard@ligo.org> Date: Thu, 28 Mar 2019 15:02:38 -0500 Subject: [PATCH] Change mechanism for sending emails Instead of looping over EmailMessage.send() calls, we now get the email backend and send a list of messages. Note that the backend sends the messages individually still but this cuts out some of the overhead. --- config/settings/base.py | 2 +- gracedb/alerts/email.py | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/config/settings/base.py b/config/settings/base.py index 8bef77c62..ec4caa651 100644 --- a/config/settings/base.py +++ b/config/settings/base.py @@ -603,7 +603,7 @@ LOGGING = { 'propagate': True, 'level': LOG_LEVEL, }, - 'django.request': { + 'django.request': { 'handlers': ['mail_admins'], 'level': 'ERROR', 'propagate': False, diff --git a/gracedb/alerts/email.py b/gracedb/alerts/email.py index 3abeefe51..0ffa1f3b7 100644 --- a/gracedb/alerts/email.py +++ b/gracedb/alerts/email.py @@ -3,7 +3,7 @@ import logging import textwrap from django.conf import settings -from django.core.mail import EmailMessage +from django.core.mail import EmailMessage, get_connection from django.urls import reverse from core.time_utils import gpsToUtc @@ -143,10 +143,13 @@ def issue_email_alerts(event_or_superevent, alert_type, recipients, logger.debug("Sending email to {recips}".format( recips=", ".join([r.email for r in recipients]))) - # Send mail individually so all emails are not rejected due to a single - # address being blacklisted + # Construct email messages + messages = [] for recip in recipients: - # Send email email = EmailMessage(subject=subject, body=email_body, from_email=settings.ALERT_EMAIL_FROM, to=[recip.email]) - email.send() + messages.append(email) + + # Send email messages + backend = get_connection() + backend.send_messages(messages) -- GitLab