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 | 16 | <form method="post" action="" enctype="multipart/form-data"> |
| 17 | 17 | {% csrf_token %} |
| 18 | 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 | 25 | {% for field in form %} |
| 20 | 26 | {% if field.auto_id == 'id_username' %} |
| 21 | 27 | <br clear="all" /> | ... | ... |
users/views.py
| ... | ... | @@ -22,6 +22,10 @@ from django.conf import settings |
| 22 | 22 | from django.utils.encoding import force_bytes |
| 23 | 23 | from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode |
| 24 | 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 | 30 | #API IMPORTS |
| 27 | 31 | from rest_framework import viewsets |
| ... | ... | @@ -346,15 +350,32 @@ class ForgotPassword(generic.FormView): |
| 346 | 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 | 354 | email_template_name = 'recover_pass_email_template.html' |
| 351 | 355 | |
| 352 | 356 | subject = loader.render_to_string(subject_template_name, c) |
| 353 | 357 | # Email subject *must not* contain newlines |
| 354 | 358 | subject = ''.join(subject.splitlines()) |
| 355 | 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 | 380 | result = self.form_valid(form) |
| 360 | 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.")) | ... | ... |