diff --git a/web_dev/sas_web/meingoethopia/mailutils.py b/web_dev/sas_web/meingoethopia/mailutils.py index c45a82f..4bf4cd0 100644 --- a/web_dev/sas_web/meingoethopia/mailutils.py +++ b/web_dev/sas_web/meingoethopia/mailutils.py @@ -1,7 +1,5 @@ from django.core import mail -from django.core.mail import EmailMessage from django.conf import settings -from django.core.mail.backends.smtp import EmailBackend NOT_SENT, SENT, PARTLY_SENT = 0, 1, 2 @@ -14,20 +12,29 @@ def send_from_arbeitsministerium(subject, content, recipients, reply_to=None): auth_password=settings.EMAIL_ARBEITSMINISTERIUM_PASSWORD) +def send_from_info(subject, content, recipients, reply_to=None): + return send(subject, content, settings.EMAIL_INFO, recipients, + reply_to=reply_to, + auth_user=settings.EMAIL_INFO_USER, + auth_password=settings.EMAIL_INFO_PASSWORD) + + def send(subject, content, sender, recipients, reply_to=None, auth_user=None, auth_password=None): failed, succeeded = False, False if type(recipients) != list: recipients = [recipients] - for recipient in set(recipients): - try: - mail.send_mail(subject, content, sender, recipients, - auth_user=auth_user, - auth_password=auth_password) - except Exception as e: - print("Error when sending mail:", e) - failed = True - else: - succeeded = True + with mail.get_connection(username=auth_user, password=auth_password) as conn: + for recipient in set(recipients): + try: + msg = mail.EmailMessage(subject, content, sender, recipients, + reply_to=reply_to, + connection=conn) + msg.send() + except Exception as e: + print("Error when sending mail:", e) + failed = True + else: + succeeded = True return NOT_SENT if failed and not succeeded else SENT if not failed\ and succeeded else PARTLY_SENT diff --git a/web_dev/sas_web/meingoethopia/views.py b/web_dev/sas_web/meingoethopia/views.py index d6cb82a..9744393 100644 --- a/web_dev/sas_web/meingoethopia/views.py +++ b/web_dev/sas_web/meingoethopia/views.py @@ -1,8 +1,9 @@ from django.shortcuts import render from django import forms +from django.conf import settings from captcha.fields import CaptchaField from .models import Betrieb, Partei, PresidentCandidate, Question -from .mailutils import send_from_arbeitsministerium +from .mailutils import send_from_arbeitsministerium, send_from_info class BetriebForm(forms.Form): @@ -106,6 +107,8 @@ def question_new(request): ip_address=get_client_ip(request), answered=False) question.save() + send_from_info(question.subject, question.content, + settings.EMAIL_INFO, reply_to=[question.email]) return render_confirmation(request) else: form = QuestionForm() diff --git a/web_dev/sas_web/sas_web/settings.py b/web_dev/sas_web/sas_web/settings.py index 651b85a..c48f391 100644 --- a/web_dev/sas_web/sas_web/settings.py +++ b/web_dev/sas_web/sas_web/settings.py @@ -146,3 +146,7 @@ EMAIL_USE_TLS = True if deployed else False EMAIL_ARBEITSMINISTERIUM = os.environ.get('EMAIL_ARBEITSMINISTERIUM', '') EMAIL_ARBEITSMINISTERIUM_USER = os.environ.get('EMAIL_ARBEITSMINISTERIUM', '') EMAIL_ARBEITSMINISTERIUM_PASSWORD = os.environ.get('EMAIL_ARBEITSMINISTERIUM_PASSWORD', '') + +EMAIL_INFO = os.environ.get('EMAIL_INFO', '') +EMAIL_INFO_USER = os.environ.get('EMAIL_INFO', '') +EMAIL_INFO_PASSWORD = os.environ.get('EMAIL_INFO_PASSWORD', '')