From 46c9918cebdc423bad56835f6d2649dc234b3194 Mon Sep 17 00:00:00 2001 From: ailsoncgt Date: Sun, 6 Nov 2016 17:26:09 -0300 Subject: [PATCH] smtp config --- amadeus/settings.py | 3 ++- core/smtp.py | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 core/smtp.py diff --git a/amadeus/settings.py b/amadeus/settings.py index 0075afc..5056e96 100644 --- a/amadeus/settings.py +++ b/amadeus/settings.py @@ -205,7 +205,8 @@ EMAIL_HOST = 'smtp.gmail.com' EMAIL_PORT = 587 EMAIL_HOST_USER = 'amadeusteste@gmail.com' EMAIL_HOST_PASSWORD = 'amadeusteste' -EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' +# SMTP CONFIG +# EMAIL_BACKEND = 'core.smtp.AmadeusEmailBackend' #s3direct diff --git a/core/smtp.py b/core/smtp.py new file mode 100644 index 0000000..b1b7375 --- /dev/null +++ b/core/smtp.py @@ -0,0 +1,38 @@ +from django.core.mail.backends import EmailBackend +from app.models import EmailBackend as SmtpModal + +class AmadeusEmailBackend(EmailBackend): + """docstring for AmadeusEmailBackend""" + def __init__(self, host=None, port=None, username=None, password=None, + use_tls=None, fail_silently=False, use_ssl=None, timeout=None, + ssl_keyfile=None, ssl_certfile=None, + **kwargs): + super(AmadeusEmailBackend, self).__init__(fail_silently=fail_silently) + try: + config = SmtpModal.objects.latest('id') + self.host = config.host or settings.EMAIL_HOST + self.port = config.port or settings.EMAIL_PORT + self.username = config.username or settings.EMAIL_HOST_USER if username is None else username + self.password = config.password or settings.EMAIL_HOST_PASSWORD if password is None else password + + if config.safe_conection == 2: + self.use_tls = True + self.use_ssl = False + elif config.safe_conection == 3: + self.use_tls = False + self.use_ssl = True + else: + self.use_tls = False + self.use_ssl = False + + self.timeout = settings.EMAIL_TIMEOUT if timeout is None else timeout + self.ssl_keyfile = settings.EMAIL_SSL_KEYFILE if ssl_keyfile is None else ssl_keyfile + self.ssl_certfile = settings.EMAIL_SSL_CERTFILE if ssl_certfile is None else ssl_certfile + if self.use_ssl and self.use_tls: + raise ValueError( + "EMAIL_USE_TLS/EMAIL_USE_SSL are mutually exclusive, so only set " + "one of those settings to True.") + self.connection = None + self._lock = threading.RLock() + except: + pass \ No newline at end of file -- libgit2 0.21.2