Commit 584e03b070f8e6e6eb344ee18ee26fd183db138a
1 parent
391777de
Exists in
master
and in
3 other branches
Sending email with configurated mail data
Showing
2 changed files
with
30 additions
and
3 deletions
Show diff stats
mailsender/templates/mailsender/update.html
@@ -16,6 +16,12 @@ | @@ -16,6 +16,12 @@ | ||
16 | <form method="post" action="" enctype="multipart/form-data"> | 16 | <form method="post" action="" enctype="multipart/form-data"> |
17 | {% csrf_token %} | 17 | {% csrf_token %} |
18 | <legend>{% trans 'General server settings' %}</legend> | 18 | <legend>{% trans 'General server settings' %}</legend> |
19 | + <em> | ||
20 | + {% trans 'If your email host is Gmail make sure to turn on the option "Allow less secure apps" in' %}: | ||
21 | + <b><a href="https://www.google.com/settings/security/lesssecureapps">https://www.google.com/settings/security/lesssecureapps</a></b> | ||
22 | + </em> | ||
23 | + <br clear="all" /> | ||
24 | + <br clear="all" /> | ||
19 | {% for field in form %} | 25 | {% for field in form %} |
20 | {% if field.auto_id == 'id_username' %} | 26 | {% if field.auto_id == 'id_username' %} |
21 | <br clear="all" /> | 27 | <br clear="all" /> |
users/views.py
@@ -22,6 +22,10 @@ from django.conf import settings | @@ -22,6 +22,10 @@ from django.conf import settings | ||
22 | from django.utils.encoding import force_bytes | 22 | from django.utils.encoding import force_bytes |
23 | from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode | 23 | from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode |
24 | from django.template import loader | 24 | from django.template import loader |
25 | +from django.core.mail import EmailMessage | ||
26 | +from django.core.mail.backends.smtp import EmailBackend | ||
27 | + | ||
28 | +from mailsender.models import MailSender | ||
25 | 29 | ||
26 | #API IMPORTS | 30 | #API IMPORTS |
27 | from rest_framework import viewsets | 31 | from rest_framework import viewsets |
@@ -346,15 +350,32 @@ class ForgotPassword(generic.FormView): | @@ -346,15 +350,32 @@ class ForgotPassword(generic.FormView): | ||
346 | 'protocol': 'http', | 350 | 'protocol': 'http', |
347 | } | 351 | } |
348 | 352 | ||
349 | - subject_template_name='registration/password_reset_subject.txt' | 353 | + subject_template_name = 'registration/password_reset_subject.txt' |
350 | email_template_name = 'recover_pass_email_template.html' | 354 | email_template_name = 'recover_pass_email_template.html' |
351 | 355 | ||
352 | subject = loader.render_to_string(subject_template_name, c) | 356 | subject = loader.render_to_string(subject_template_name, c) |
353 | # Email subject *must not* contain newlines | 357 | # Email subject *must not* contain newlines |
354 | subject = ''.join(subject.splitlines()) | 358 | subject = ''.join(subject.splitlines()) |
355 | email = loader.render_to_string(email_template_name, c) | 359 | email = loader.render_to_string(email_template_name, c) |
356 | - | ||
357 | - send_mail(subject, email, settings.DEFAULT_FROM_EMAIL , [user.email], fail_silently=False) | 360 | + |
361 | + mailsender = MailSender.objects.get(id = 1) | ||
362 | + | ||
363 | + if mailsender.hostname == "example.com": | ||
364 | + send_mail(subject, email, settings.DEFAULT_FROM_EMAIL , [user.email], fail_silently=False) | ||
365 | + else: | ||
366 | + if mailsender.crypto == 3 or mailsender.crypto == 4: | ||
367 | + tls = True | ||
368 | + else: | ||
369 | + tls = False | ||
370 | + | ||
371 | + backend = EmailBackend( | ||
372 | + host = mailsender.hostname, port = mailsender.port, username = mailsender.username, | ||
373 | + password = mailsender.password, use_tls = tls, fail_silently = False | ||
374 | + ) | ||
375 | + | ||
376 | + mail_msg = EmailMessage(subject = subject, body = email, from_email = settings.DEFAULT_FROM_EMAIL, to = [user.email], connection = backend) | ||
377 | + | ||
378 | + mail_msg.send() | ||
358 | 379 | ||
359 | result = self.form_valid(form) | 380 | result = self.form_valid(form) |
360 | messages.success(request, _("Soon you'll receive an email with instructions to set your new password. If you don't receive it in 24 hours, please check your spam box.")) | 381 | messages.success(request, _("Soon you'll receive an email with instructions to set your new password. If you don't receive it in 24 hours, please check your spam box.")) |