From d8f54b94f4057cd222f62109c80733a0e5125d19 Mon Sep 17 00:00:00 2001
From: PedroHenriqueDevBR
Date: Wed, 24 Jan 2024 13:42:39 -0300
Subject: [PATCH] feat: custom send mail method
---
.gitignore | 268 +-----------------
.../apps/core/services/mail/send_mail.py | 102 ++++++-
ldap_password/ldap_password/settings/dev.py | 36 ++-
3 files changed, 110 insertions(+), 296 deletions(-)
diff --git a/.gitignore b/.gitignore
index d9de3c4..4f97f90 100644
--- a/.gitignore
+++ b/.gitignore
@@ -126,267 +126,7 @@ dmypy.json
# Pyre type checker
.pyre/
-ldap_password/static_volume/admin/css/autocomplete.css
-ldap_password/static_volume/admin/css/base.css
-ldap_password/static_volume/admin/css/changelists.css
-ldap_password/static_volume/admin/css/dark_mode.css
-ldap_password/static_volume/admin/css/dashboard.css
-ldap_password/static_volume/admin/css/forms.css
-ldap_password/static_volume/admin/css/login.css
-ldap_password/static_volume/admin/css/nav_sidebar.css
-ldap_password/static_volume/admin/css/responsive_rtl.css
-ldap_password/static_volume/admin/css/responsive.css
-ldap_password/static_volume/admin/css/rtl.css
-ldap_password/static_volume/admin/css/widgets.css
-ldap_password/static_volume/admin/css/vendor/select2/LICENSE-SELECT2.md
-ldap_password/static_volume/admin/css/vendor/select2/select2.css
-ldap_password/static_volume/admin/css/vendor/select2/select2.min.css
-ldap_password/static_volume/admin/img/calendar-icons.svg
-ldap_password/static_volume/admin/img/icon-addlink.svg
-ldap_password/static_volume/admin/img/icon-alert.svg
-ldap_password/static_volume/admin/img/icon-calendar.svg
-ldap_password/static_volume/admin/img/icon-changelink.svg
-ldap_password/static_volume/admin/img/icon-clock.svg
-ldap_password/static_volume/admin/img/icon-deletelink.svg
-ldap_password/static_volume/admin/img/icon-no.svg
-ldap_password/static_volume/admin/img/icon-unknown-alt.svg
-ldap_password/static_volume/admin/img/icon-unknown.svg
-ldap_password/static_volume/admin/img/icon-viewlink.svg
-ldap_password/static_volume/admin/img/icon-yes.svg
-ldap_password/static_volume/admin/img/inline-delete.svg
-ldap_password/static_volume/admin/img/LICENSE
-ldap_password/static_volume/admin/img/README.txt
-ldap_password/static_volume/admin/img/search.svg
-ldap_password/static_volume/admin/img/selector-icons.svg
-ldap_password/static_volume/admin/img/sorting-icons.svg
-ldap_password/static_volume/admin/img/tooltag-add.svg
-ldap_password/static_volume/admin/img/tooltag-arrowright.svg
-ldap_password/static_volume/admin/img/gis/move_vertex_off.svg
-ldap_password/static_volume/admin/img/gis/move_vertex_on.svg
-ldap_password/static_volume/admin/js/actions.js
-ldap_password/static_volume/admin/js/autocomplete.js
-ldap_password/static_volume/admin/js/calendar.js
-ldap_password/static_volume/admin/js/cancel.js
-ldap_password/static_volume/admin/js/change_form.js
-ldap_password/static_volume/admin/js/collapse.js
-ldap_password/static_volume/admin/js/core.js
-ldap_password/static_volume/admin/js/filters.js
-ldap_password/static_volume/admin/js/inlines.js
-ldap_password/static_volume/admin/js/jquery.init.js
-ldap_password/static_volume/admin/js/nav_sidebar.js
-ldap_password/static_volume/admin/js/popup_response.js
-ldap_password/static_volume/admin/js/prepopulate_init.js
-ldap_password/static_volume/admin/js/prepopulate.js
-ldap_password/static_volume/admin/js/SelectBox.js
-ldap_password/static_volume/admin/js/SelectFilter2.js
-ldap_password/static_volume/admin/js/theme.js
-ldap_password/static_volume/admin/js/urlify.js
-ldap_password/static_volume/admin/js/admin/DateTimeShortcuts.js
-ldap_password/static_volume/admin/js/admin/RelatedObjectLookups.js
-ldap_password/static_volume/admin/js/vendor/jquery/jquery.js
-ldap_password/static_volume/admin/js/vendor/jquery/jquery.min.js
-ldap_password/static_volume/admin/js/vendor/jquery/LICENSE.txt
-ldap_password/static_volume/admin/js/vendor/select2/LICENSE.md
-ldap_password/static_volume/admin/js/vendor/select2/select2.full.js
-ldap_password/static_volume/admin/js/vendor/select2/select2.full.min.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/af.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/ar.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/az.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/bg.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/bn.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/bs.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/ca.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/cs.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/da.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/de.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/dsb.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/el.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/en.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/es.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/et.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/eu.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/fa.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/fi.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/fr.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/gl.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/he.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/hi.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/hr.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/hsb.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/hu.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/hy.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/id.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/is.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/it.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/ja.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/ka.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/km.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/ko.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/lt.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/lv.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/mk.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/ms.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/nb.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/ne.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/nl.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/pl.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/ps.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/pt-BR.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/pt.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/ro.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/ru.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/sk.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/sl.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/sq.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/sr-Cyrl.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/sr.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/sv.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/th.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/tk.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/tr.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/uk.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/vi.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/zh-CN.js
-ldap_password/static_volume/admin/js/vendor/select2/i18n/zh-TW.js
-ldap_password/static_volume/admin/js/vendor/xregexp/LICENSE.txt
-ldap_password/static_volume/admin/js/vendor/xregexp/xregexp.js
-ldap_password/static_volume/admin/js/vendor/xregexp/xregexp.min.js
-ldap_password/static_volume/css/bootstrap.min.css
-ldap_password/static_volume/css/custom.css
-ldap_password/static_volume/css/font-awesome-all.min.css
-ldap_password/static_volume/images/logo.png
-ldap_password/static_volume/js/bootstrap.bundle.min.js
-ldap_password/static_volume/js/jquery.min.js
-ldap_password/staticfiles/admin/css/autocomplete.css
-ldap_password/staticfiles/admin/css/base.css
-ldap_password/staticfiles/admin/css/changelists.css
-ldap_password/staticfiles/admin/css/dark_mode.css
-ldap_password/staticfiles/admin/css/dashboard.css
-ldap_password/staticfiles/admin/css/forms.css
-ldap_password/staticfiles/admin/css/login.css
-ldap_password/staticfiles/admin/css/nav_sidebar.css
-ldap_password/staticfiles/admin/css/responsive_rtl.css
-ldap_password/staticfiles/admin/css/responsive.css
-ldap_password/staticfiles/admin/css/rtl.css
-ldap_password/staticfiles/admin/css/widgets.css
-ldap_password/staticfiles/admin/css/vendor/select2/LICENSE-SELECT2.md
-ldap_password/staticfiles/admin/css/vendor/select2/select2.css
-ldap_password/staticfiles/admin/css/vendor/select2/select2.min.css
-ldap_password/staticfiles/admin/img/calendar-icons.svg
-ldap_password/staticfiles/admin/img/icon-addlink.svg
-ldap_password/staticfiles/admin/img/icon-alert.svg
-ldap_password/staticfiles/admin/img/icon-calendar.svg
-ldap_password/staticfiles/admin/img/icon-changelink.svg
-ldap_password/staticfiles/admin/img/icon-clock.svg
-ldap_password/staticfiles/admin/img/icon-deletelink.svg
-ldap_password/staticfiles/admin/img/icon-no.svg
-ldap_password/staticfiles/admin/img/icon-unknown-alt.svg
-ldap_password/staticfiles/admin/img/icon-unknown.svg
-ldap_password/staticfiles/admin/img/icon-viewlink.svg
-ldap_password/staticfiles/admin/img/icon-yes.svg
-ldap_password/staticfiles/admin/img/inline-delete.svg
-ldap_password/staticfiles/admin/img/LICENSE
-ldap_password/staticfiles/admin/img/README.txt
-ldap_password/staticfiles/admin/img/search.svg
-ldap_password/staticfiles/admin/img/selector-icons.svg
-ldap_password/staticfiles/admin/img/sorting-icons.svg
-ldap_password/staticfiles/admin/img/tooltag-add.svg
-ldap_password/staticfiles/admin/img/tooltag-arrowright.svg
-ldap_password/staticfiles/admin/img/gis/move_vertex_off.svg
-ldap_password/staticfiles/admin/img/gis/move_vertex_on.svg
-ldap_password/staticfiles/admin/js/actions.js
-ldap_password/staticfiles/admin/js/autocomplete.js
-ldap_password/staticfiles/admin/js/calendar.js
-ldap_password/staticfiles/admin/js/cancel.js
-ldap_password/staticfiles/admin/js/change_form.js
-ldap_password/staticfiles/admin/js/collapse.js
-ldap_password/staticfiles/admin/js/core.js
-ldap_password/staticfiles/admin/js/filters.js
-ldap_password/staticfiles/admin/js/inlines.js
-ldap_password/staticfiles/admin/js/jquery.init.js
-ldap_password/staticfiles/admin/js/nav_sidebar.js
-ldap_password/staticfiles/admin/js/popup_response.js
-ldap_password/staticfiles/admin/js/prepopulate_init.js
-ldap_password/staticfiles/admin/js/prepopulate.js
-ldap_password/staticfiles/admin/js/SelectBox.js
-ldap_password/staticfiles/admin/js/SelectFilter2.js
-ldap_password/staticfiles/admin/js/theme.js
-ldap_password/staticfiles/admin/js/urlify.js
-ldap_password/staticfiles/admin/js/admin/DateTimeShortcuts.js
-ldap_password/staticfiles/admin/js/admin/RelatedObjectLookups.js
-ldap_password/staticfiles/admin/js/vendor/jquery/jquery.js
-ldap_password/staticfiles/admin/js/vendor/jquery/jquery.min.js
-ldap_password/staticfiles/admin/js/vendor/jquery/LICENSE.txt
-ldap_password/staticfiles/admin/js/vendor/select2/LICENSE.md
-ldap_password/staticfiles/admin/js/vendor/select2/select2.full.js
-ldap_password/staticfiles/admin/js/vendor/select2/select2.full.min.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/af.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/ar.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/az.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/bg.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/bn.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/bs.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/ca.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/cs.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/da.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/de.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/dsb.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/el.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/en.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/es.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/et.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/eu.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/fa.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/fi.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/fr.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/gl.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/he.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/hi.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/hr.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/hsb.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/hu.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/hy.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/id.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/is.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/it.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/ja.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/ka.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/km.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/ko.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/lt.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/lv.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/mk.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/ms.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/nb.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/ne.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/nl.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/pl.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/ps.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/pt-BR.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/pt.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/ro.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/ru.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/sk.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/sl.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/sq.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/sr-Cyrl.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/sr.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/sv.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/th.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/tk.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/tr.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/uk.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/vi.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/zh-CN.js
-ldap_password/staticfiles/admin/js/vendor/select2/i18n/zh-TW.js
-ldap_password/staticfiles/admin/js/vendor/xregexp/LICENSE.txt
-ldap_password/staticfiles/admin/js/vendor/xregexp/xregexp.js
-ldap_password/staticfiles/admin/js/vendor/xregexp/xregexp.min.js
-ldap_password/staticfiles/css/bootstrap.min.css
-ldap_password/staticfiles/css/custom.css
-ldap_password/staticfiles/css/font-awesome-all.min.css
-ldap_password/staticfiles/images/logo.png
-ldap_password/staticfiles/js/bootstrap.bundle.min.js
-ldap_password/staticfiles/js/jquery.min.js
-ldap_password/dockerfiles/nginx/cert/ca.cer
-ldap_password/dockerfiles/nginx/cert/ca.key
+ldap_password/static_volume/*
+ldap_password/staticfiles/*
+ldap_password/dockerfiles/nginx/cert/*
+ldap_password/temp/*
diff --git a/ldap_password/apps/core/services/mail/send_mail.py b/ldap_password/apps/core/services/mail/send_mail.py
index b9cc84c..9e7b309 100644
--- a/ldap_password/apps/core/services/mail/send_mail.py
+++ b/ldap_password/apps/core/services/mail/send_mail.py
@@ -1,20 +1,91 @@
from django.conf import settings
-from django.core.mail import send_mail
+
+# from django.core.mail import send_mail
+import smtplib
+import email.utils
+from email.message import EmailMessage
+import ssl
+
+
+class CustomMailBackend:
+ def send_mail(self, subject: str, message: str, to: str) -> None:
+ SENDERNAME = "Não Responda"
+ RECIPIENT = to
+ SENDER = settings.DEFAULT_FROM_EMAIL
+ USERNAME_SMTP = settings.EMAIL_HOST_USER
+ password_smtp = settings.EMAIL_HOST_PASSWORD
+ HOST = settings.EMAIL_HOST
+ PORT = settings.EMAIL_PORT
+ SUBJECT = subject
+
+ # The email body for recipients with non-HTML email clients.
+ BODY_TEXT = (
+ "Defensoria Pública do Estado do Piauí\r\n"
+ + "Esse é um e-mail confidencial, não o repasse para ninguém.\n"
+ + message
+ )
+
+ # The HTML body of the email.
+ BODY_HTML = """
+
+
+ Defensoria Pública do Estado do Piauí
+
+ Esse é um e-mail confidencial, não o repasse para ninguém.
+ {}
+
+
+ """.format(
+ message
+ )
+
+ msg = EmailMessage()
+ msg["Subject"] = SUBJECT
+ msg["From"] = email.utils.formataddr((SENDERNAME, SENDER))
+ msg["To"] = RECIPIENT
+
+ msg.add_alternative(BODY_TEXT, subtype="text")
+ msg.add_alternative(BODY_HTML, subtype="html")
+
+ try:
+ server = smtplib.SMTP(HOST, PORT)
+ server.ehlo()
+ server.starttls(
+ context=ssl.create_default_context(
+ purpose=ssl.Purpose.SERVER_AUTH, cafile=None, capath=None
+ )
+ )
+ server.ehlo()
+ server.login(USERNAME_SMTP, password_smtp)
+ server.sendmail(SENDER, RECIPIENT, msg.as_string())
+ server.close()
+ except Exception as e:
+ print(f"Error: {e}")
+ else:
+ print("Email successfully sent!")
class MailService:
+ def __init__(self) -> None:
+ self.mail_service = CustomMailBackend()
+
def send_token(self, to: str, token: str) -> None:
subject = "NO REPPLY"
mail_body = "Token para recuperação de senha: {}".format(token)
- send_mail(
+ self.mail_service.send_mail(
subject=subject,
message=mail_body,
- from_email=settings.EMAIL_HOST_USER,
- recipient_list=[
- to,
- ],
- fail_silently=False,
+ to=to,
)
+ # send_mail(
+ # subject=subject,
+ # message=mail_body,
+ # from_email=settings.EMAIL_HOST_USER,
+ # recipient_list=[
+ # to,
+ # ],
+ # fail_silently=False,
+ # )
def send_password(self, to: str, password: str) -> None:
subject = "NO REPPLY"
@@ -23,12 +94,17 @@ def send_password(self, to: str, password: str) -> None:
password,
)
)
- send_mail(
+ self.mail_service.send_mail(
subject=subject,
message=mail_body,
- from_email=settings.EMAIL_HOST_USER,
- recipient_list=[
- to,
- ],
- fail_silently=False,
+ to=to,
)
+ # send_mail(
+ # subject=subject,
+ # message=mail_body,
+ # from_email=settings.EMAIL_HOST_USER,
+ # recipient_list=[
+ # to,
+ # ],
+ # fail_silently=False,
+ # )
diff --git a/ldap_password/ldap_password/settings/dev.py b/ldap_password/ldap_password/settings/dev.py
index 4969386..06bbb57 100644
--- a/ldap_password/ldap_password/settings/dev.py
+++ b/ldap_password/ldap_password/settings/dev.py
@@ -1,12 +1,10 @@
from ldap_password.settings.base import *
-import environ
+from decouple import config
# Envoiroments load
-env = environ.Env()
-environ.Env.read_env(".env")
# General settings
-SECRET_KEY = env("APP_SECRET_KEY")
+SECRET_KEY = config("APP_SECRET_KEY")
DEBUG = True
# Database
@@ -21,22 +19,22 @@
}
# App metadata
-ENTERPRISE_NAME = env("ENTERPRISE_NAME")
-SUCCESS_REDIRECT_URL = env("SUCCESS_REDIRECT_URL")
+ENTERPRISE_NAME = config("ENTERPRISE_NAME")
+SUCCESS_REDIRECT_URL = config("SUCCESS_REDIRECT_URL")
# AD Connection details
-LDAP_URL = env("LDAP_URL")
-LDAP_PORT = int(env("LDAP_PORT"))
-LDAP_BASE = env("LDAP_BASE")
-LDAP_DOMAIN = env("LDAP_DOMAIN")
-LDAP_LOGON_DOMAIN_NAME = env("LDAP_LOGON_DOMAIN_NAME")
-LDAP_SERVICE_BIND_DN = env("LDAP_SERVICE_BIND_DN")
-LDAP_SERVICE_SAM_ACCOUNT_NAME = env("LDAP_SERVICE_SAM_ACCOUNT_NAME")
-LDAP_SERVICE_PASSWORD = env("LDAP_SERVICE_PASSWORD")
+LDAP_URL = config("LDAP_URL")
+LDAP_PORT = int(config("LDAP_PORT"))
+LDAP_BASE = config("LDAP_BASE")
+LDAP_DOMAIN = config("LDAP_DOMAIN")
+LDAP_LOGON_DOMAIN_NAME = config("LDAP_LOGON_DOMAIN_NAME")
+LDAP_SERVICE_BIND_DN = config("LDAP_SERVICE_BIND_DN")
+LDAP_SERVICE_SAM_ACCOUNT_NAME = config("LDAP_SERVICE_SAM_ACCOUNT_NAME")
+LDAP_SERVICE_PASSWORD = config("LDAP_SERVICE_PASSWORD")
# Mail
-EMAIL_HOST = env("EMAIL_HOST")
-EMAIL_PORT = int(env("EMAIL_PORT"))
-DEFAULT_FROM_EMAIL = env("EMAIL_DEFAULT_FROM")
-EMAIL_HOST_USER = env("EMAIL_HOST_USER")
-EMAIL_HOST_PASSWORD = env("EMAIL_HOST_PASSWORD")
+EMAIL_HOST = config("EMAIL_HOST")
+EMAIL_PORT = int(config("EMAIL_PORT"))
+DEFAULT_FROM_EMAIL = config("EMAIL_DEFAULT_FROM")
+EMAIL_HOST_USER = config("EMAIL_HOST_USER")
+EMAIL_HOST_PASSWORD = config("EMAIL_HOST_PASSWORD")