auto responder for betriebe

This commit is contained in:
erichhasl
2017-12-04 20:59:47 +01:00
parent edbbe8219f
commit 775139b9ed
3 changed files with 59 additions and 0 deletions
@@ -0,0 +1,33 @@
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
def send_from_arbeitsministerium(subject, content, recipients, reply_to=None):
return send(subject, content, settings.EMAIL_ARBEITSMINISTERIUM, recipients,
reply_to=reply_to,
auth_user=settings.EMAIL_ARBEITSMINISTERIUM_USER,
auth_password=settings.EMAIL_ARBEITSMINISTERIUM_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
return NOT_SENT if failed and not succeeded else SENT if not failed\
and succeeded else PARTLY_SENT
+12
View File
@@ -2,6 +2,7 @@ from django.shortcuts import render
from django import forms from django import forms
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
class BetriebForm(forms.Form): class BetriebForm(forms.Form):
@@ -51,6 +52,10 @@ def betrieb_new(request):
ip_address=get_client_ip(request), ip_address=get_client_ip(request),
confirmed=False) confirmed=False)
betrieb.save() betrieb.save()
send_from_arbeitsministerium(
'Anmeldung des Betriebs: {}'.format(betrieb.name),
MAIL_CONTENT_BETRIEB.format(name=betrieb.manager), [betrieb.email]
)
return render_confirmation(request) return render_confirmation(request)
else: else:
form = BetriebForm() form = BetriebForm()
@@ -118,3 +123,10 @@ def get_client_ip(request):
else: else:
ip = request.META.get('REMOTE_ADDR') ip = request.META.get('REMOTE_ADDR')
return ip return ip
MAIL_CONTENT_BETRIEB = "Lieber {name},\nvielen Dank für die Anmeldung Deines" \
" Betriebes. Die Informationsveranstaltungen beginnen erst im Februar, deshalb\n" \
"wird sich das Arbeitsministerium dann erst mit Dir in Verbindung setzen.\n\n" \
"Viele Grüße,\n" \
"Organisation Goethopia"
+14
View File
@@ -13,6 +13,8 @@ https://docs.djangoproject.com/en/1.8/ref/settings/
# Build paths inside the project like this: os.path.join(BASE_DIR, ...) # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os import os
deployed = '1' == os.environ.get('DJANGO_DEPLOY', '0')
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
@@ -132,3 +134,15 @@ STATICFILES_DIRS = [
STATIC_ROOT = os.environ.get('DJANGO_STATIC_ROOT', STATIC_ROOT = os.environ.get('DJANGO_STATIC_ROOT',
os.path.join((os.path.join(BASE_DIR, os.pardir)), "static")) os.path.join((os.path.join(BASE_DIR, os.pardir)), "static"))
# Email setup
EMAIL_HOST = os.environ.get('EMAIL_HOST', 'localhost')
EMAIL_PORT = 587 if deployed else 25
EMAIL_HOST_USER = os.environ.get('EMAIL_HOST_USER', '')
EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_HOST_PASSWORD', '')
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', '')