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.")) |