Skip to content
Snippets Groups Projects
Commit 39939d7f authored by Piotr Gawron's avatar Piotr Gawron
Browse files

send email functionality

parent f8345c34
No related branches found
No related tags found
1 merge request!42Email functionality
Pipeline #
# 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
from django.conf import settings
from django.core.mail import send_mail
from django.core.mail import EmailMessage
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, recipients, cc_recipients=[]):
email_from = getattr(settings, "DEFAULT_FROM_EMAIL", None)
recipient_list = []
for recipient in recipients.split(";"):
recipient_list.append(recipient)
cc_recipients.append(email_from)
message = EmailMessage(
subject,
body,
email_from,
recipient_list,
cc=cc_recipients
)
message.content_subtype = "html"
message.send()
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)
# send_mail(subject, "", email_from, recipient_list, cc=cc_recipients, html_message=body)
# coding=utf-8
from django.core import mail
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):
self.assertEqual(0, len(mail.outbox))
email_sender = EmailSender()
email_sender.send_email("test", "test body<br/>and content", "piotr.gawron@uni.lu")
self.assertEqual(1, len(mail.outbox))
# console test that actually send email
# > manage.py shell
# from web.email import EmailSender; EmailSender().send_email("test","<h1>body</h1>","piotr.gawron@uni.lu");
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment