auto responder for betriebe
This commit is contained in:
@@ -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
|
||||
@@ -2,6 +2,7 @@ from django.shortcuts import render
|
||||
from django import forms
|
||||
from captcha.fields import CaptchaField
|
||||
from .models import Betrieb, Partei, PresidentCandidate, Question
|
||||
from .mailutils import send_from_arbeitsministerium
|
||||
|
||||
|
||||
class BetriebForm(forms.Form):
|
||||
@@ -51,6 +52,10 @@ def betrieb_new(request):
|
||||
ip_address=get_client_ip(request),
|
||||
confirmed=False)
|
||||
betrieb.save()
|
||||
send_from_arbeitsministerium(
|
||||
'Anmeldung des Betriebs: {}'.format(betrieb.name),
|
||||
MAIL_CONTENT_BETRIEB.format(name=betrieb.manager), [betrieb.email]
|
||||
)
|
||||
return render_confirmation(request)
|
||||
else:
|
||||
form = BetriebForm()
|
||||
@@ -118,3 +123,10 @@ def get_client_ip(request):
|
||||
else:
|
||||
ip = request.META.get('REMOTE_ADDR')
|
||||
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"
|
||||
|
||||
Reference in New Issue
Block a user