From dd0ec77d50ed0cb802816fdaad59543b1980ee0a Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Wed, 5 Apr 2017 14:01:58 +0200 Subject: [PATCH] work in progress --- smash/smash/settings.py | 9 +++++++++ smash/web/email.py | 28 ++++++++++++++++++++++++++++ smash/web/tests/test_email.py | 31 +++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 smash/web/email.py create mode 100644 smash/web/tests/test_email.py diff --git a/smash/smash/settings.py b/smash/smash/settings.py index fd634ff8..9b80aea3 100644 --- a/smash/smash/settings.py +++ b/smash/smash/settings.py @@ -22,6 +22,15 @@ ALLOWED_HOSTS = ['prc.parkinson.lu', 'localhost'] DEBUG = True +EMAIL_USE_TLS = False +EMAIL_USE_SSL = False +EMAIL_HOST = 'smtp-3.uni.lu' +EMAIL_HOST_USER = 'piotr.gawron@uni.lu' +EMAIL_HOST_PASSWORD = '123qweasdzxc' +EMAIL_PORT = 25 +EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' +DEFAULT_FROM_EMAIL = 'piotr.gawron@uni.lu' + # Application definition INSTALLED_APPS = [ diff --git a/smash/web/email.py b/smash/web/email.py new file mode 100644 index 00000000..e9a0722a --- /dev/null +++ b/smash/web/email.py @@ -0,0 +1,28 @@ +# coding=utf-8 + +from django.core import mail +from django.core.mail.backends.smtp import EmailBackend + +from web.models import ConfigurationItem +from web.models.constants import EMAIL_HOST_CONFIGURATION_TYPE, EMAIL_PASSWORD_CONFIGURATION_TYPE, \ + EMAIL_PORT_CONFIGURATION_TYPE, EMAIL_USER_CONFIGURATION_TYPE, EMAIL_CONFIGURATION_TYPE + + +class EmailSender(object): + def __init__(self): + host = ConfigurationItem.objects.get(type=EMAIL_HOST_CONFIGURATION_TYPE).value + port = ConfigurationItem.objects.get(type=EMAIL_PORT_CONFIGURATION_TYPE).value + user = ConfigurationItem.objects.get(type=EMAIL_USER_CONFIGURATION_TYPE).value + password = ConfigurationItem.objects.get(type=EMAIL_PASSWORD_CONFIGURATION_TYPE).value + self.backend = EmailBackend(host=host, port=port, username=user, password=password, use_tls=False, + use_ssl=False) + # self.connection = mail.get_connection(backend=self.backend) + self.connection = mail.get_connection() + + def send_email(self, subject, body, to): + email_from = ConfigurationItem.objects.get(type=EMAIL_CONFIGURATION_TYPE).value + print email_from + print subject + print body + print to + mail.EmailMessage(subject, body, email_from, [to], connection=self.connection).send(fail_silently=False) diff --git a/smash/web/tests/test_email.py b/smash/web/tests/test_email.py new file mode 100644 index 00000000..29102ca7 --- /dev/null +++ b/smash/web/tests/test_email.py @@ -0,0 +1,31 @@ +# coding=utf-8 + +from django.test import TestCase + +from web.email import EmailSender +from web.models import ConfigurationItem +from web.models.constants import EMAIL_HOST_CONFIGURATION_TYPE, EMAIL_PASSWORD_CONFIGURATION_TYPE, \ + EMAIL_PORT_CONFIGURATION_TYPE, EMAIL_USER_CONFIGURATION_TYPE, EMAIL_CONFIGURATION_TYPE + + +class TestEmailSender(TestCase): + def setUp(selfself): + host = ConfigurationItem.objects.get(type=EMAIL_HOST_CONFIGURATION_TYPE) + host.value = "smtp.uni.lu" + host.save() + port = ConfigurationItem.objects.get(type=EMAIL_PORT_CONFIGURATION_TYPE) + port.value="25" + port.save() + + # uni doesn't check it + user = ConfigurationItem.objects.get(type=EMAIL_USER_CONFIGURATION_TYPE) + password = ConfigurationItem.objects.get(type=EMAIL_PASSWORD_CONFIGURATION_TYPE) + + + email_from = ConfigurationItem.objects.get(type=EMAIL_CONFIGURATION_TYPE) + email_from.value = "piotr.gawron@uni.lu" + email_from.save() + + def test_send_email(self): + email_sender = EmailSender() + email_sender.send_email("test", "test body<br/>and content", "piotr.gawron@uni.lu") -- GitLab