Просмотр исходного кода

forward questions to info mail

master
erichhasl 8 лет назад
Родитель
Сommit
aac7e5bc4e
3 измененных файлов: 27 добавлений и 13 удалений
  1. +19
    -12
      web_dev/sas_web/meingoethopia/mailutils.py
  2. +4
    -1
      web_dev/sas_web/meingoethopia/views.py
  3. +4
    -0
      web_dev/sas_web/sas_web/settings.py

+ 19
- 12
web_dev/sas_web/meingoethopia/mailutils.py Просмотреть файл

@@ -1,7 +1,5 @@
from django.core import mail from django.core import mail
from django.core.mail import EmailMessage
from django.conf import settings from django.conf import settings
from django.core.mail.backends.smtp import EmailBackend




NOT_SENT, SENT, PARTLY_SENT = 0, 1, 2 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) 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, def send(subject, content, sender, recipients, reply_to=None,
auth_user=None, auth_password=None): auth_user=None, auth_password=None):
failed, succeeded = False, False failed, succeeded = False, False
if type(recipients) != list: if type(recipients) != list:
recipients = [recipients] 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\ return NOT_SENT if failed and not succeeded else SENT if not failed\
and succeeded else PARTLY_SENT and succeeded else PARTLY_SENT

+ 4
- 1
web_dev/sas_web/meingoethopia/views.py Просмотреть файл

@@ -1,8 +1,9 @@
from django.shortcuts import render from django.shortcuts import render
from django import forms from django import forms
from django.conf import settings
from captcha.fields import CaptchaField from captcha.fields import CaptchaField
from .models import Betrieb, Partei, PresidentCandidate, Question 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): class BetriebForm(forms.Form):
@@ -106,6 +107,8 @@ def question_new(request):
ip_address=get_client_ip(request), ip_address=get_client_ip(request),
answered=False) answered=False)
question.save() question.save()
send_from_info(question.subject, question.content,
settings.EMAIL_INFO, reply_to=[question.email])
return render_confirmation(request) return render_confirmation(request)
else: else:
form = QuestionForm() form = QuestionForm()


+ 4
- 0
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 = os.environ.get('EMAIL_ARBEITSMINISTERIUM', '')
EMAIL_ARBEITSMINISTERIUM_USER = os.environ.get('EMAIL_ARBEITSMINISTERIUM', '') EMAIL_ARBEITSMINISTERIUM_USER = os.environ.get('EMAIL_ARBEITSMINISTERIUM', '')
EMAIL_ARBEITSMINISTERIUM_PASSWORD = os.environ.get('EMAIL_ARBEITSMINISTERIUM_PASSWORD', '') 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', '')

Загрузка…
Отмена
Сохранить