From 9ae0217b706347595439f4853474ecae99c2e277 Mon Sep 17 00:00:00 2001
From: "J.-S. Caux" <J.S.Caux@uva.nl>
Date: Wed, 14 Sep 2016 20:10:07 +0200
Subject: [PATCH] Modify email facility: use one connection for group emails

---
 journals/templates/journals/journals.html |  1 +
 scipost/views.py                          | 31 +++++++++++++++--------
 2 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/journals/templates/journals/journals.html b/journals/templates/journals/journals.html
index 7a3b62a3b..ec41435ba 100644
--- a/journals/templates/journals/journals.html
+++ b/journals/templates/journals/journals.html
@@ -23,6 +23,7 @@
 	</div>
       </div>
       <p>Research-level didactic material in all domains and subject areas of Physics.</p>
+      <p style="color: red;">Open for submission!</p>
       <br/>
       <hr class="hr6">
       <div class="flex-container">
diff --git a/scipost/views.py b/scipost/views.py
index 63a441745..03d0ebe97 100644
--- a/scipost/views.py
+++ b/scipost/views.py
@@ -12,6 +12,7 @@ from django.contrib.auth.decorators import login_required
 from django.contrib.auth.models import User, Group, Permission
 from django.contrib.auth.views import password_reset, password_reset_confirm
 from django.core.exceptions import PermissionDenied
+from django.core import mail
 from django.core.mail import EmailMessage
 from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
 from django.core.urlresolvers import reverse
@@ -902,17 +903,25 @@ def email_group_members(request):
     if request.method == 'POST':
         form = EmailGroupMembersForm(request.POST)
         if form.is_valid():
-            recipient_emails = []
-            for member in form.cleaned_data['group'].user_set.all():
-                recipient_emails.append(member.email)
-            emailmessage = EmailMessage(
-                form.cleaned_data['email_subject'],
-                form.cleaned_data['email_text'],
-                'SciPost Admin <admin@scipost.org>',
-                ['admin@scipost.org'],
-                bcc=recipient_emails,
-                reply_to=['admin@scipost.org'])
-            emailmessage.send(fail_silently=False)
+            # recipient_emails = []
+            # for member in form.cleaned_data['group'].user_set.all():
+            #     recipient_emails.append(member.email)
+            # emailmessage = EmailMessage(
+            #     form.cleaned_data['email_subject'],
+            #     form.cleaned_data['email_text'],
+            #     'SciPost Admin <admin@scipost.org>',
+            #     ['admin@scipost.org'],
+            #     bcc=recipient_emails,
+            #     reply_to=['admin@scipost.org'])
+            # emailmessage.send(fail_silently=False)
+            with mail.get_connection() as connection:
+                for member in form.cleaned_data['group'].user_set.all():
+                    email_text = ('Dear ' + title_dict[member.contributor.title] + ' ' + 
+                                  member.last_name + ', \n\n'
+                                  + form.cleaned_data['email_text'])
+                    mail.EmailMessage(form.cleaned_data['email_subject'],
+                                      email_text, 'SciPost Admin <admin@scipost.org>',
+                                      [member.email], connection=connection).send()
             context = {'ack_header': 'The email has been sent.',
                        'followup_message': 'Return to your ',
                        'followup_link': reverse('scipost:personal_page'),
-- 
GitLab