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

Merge branch '82-email-functionality' into 'master'

Email functionality

Closes #82

See merge request !42
parents a8b0213f 39939d7f
No related branches found
No related tags found
1 merge request!42Email functionality
Pipeline #
......@@ -6,6 +6,14 @@ DEBUG = True
WSGI_APPLICATION = 'smash.wsgi.application'
EMAIL_USE_TLS = False
EMAIL_USE_SSL = False
EMAIL_HOST = 'smtp.uni.lu'
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''
EMAIL_PORT = 25
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
DEFAULT_FROM_EMAIL = 'prc-scheduling-admin@uni.lu'
# Database
# https://docs.djangoproject.com/en/1.10/ref/settings/#databases
......
......@@ -22,6 +22,13 @@ ALLOWED_HOSTS = ['prc.parkinson.lu', 'localhost']
DEBUG = True
EMAIL_HOST = 'smtp.uni.lu'
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''
EMAIL_PORT = 25
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
DEFAULT_FROM_EMAIL = 'prc-scheduling-admin@uni.lu'
# Application definition
INSTALLED_APPS = [
......
# coding=utf-8
from django.conf import settings
from django.core.mail import send_mail
from django.core.mail import EmailMessage
class EmailSender(object):
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()
# send_mail(subject, "", email_from, recipient_list, cc=cc_recipients, html_message=body)
# -*- coding: utf-8 -*-
# Generated by Django 1.10.3 on 2017-04-04 09:43
from __future__ import unicode_literals
from django.db import migrations
from web.models.constants import KIT_RECIPIENT_EMAIL_CONFIGURATION_TYPE, \
KIT_EMAIL_HOUR_CONFIGURATION_TYPE, \
KIT_EMAIL_DAY_OF_WEEK_CONFIGURATION_TYPE
def create_item(apps, type, value, name):
# We can't import the ConfigurationItem model directly as it may be a newer
# version than this migration expects. We use the historical version.
ConfigurationItem = apps.get_model("web", "ConfigurationItem")
item = ConfigurationItem.objects.create()
item.type = type
item.value = value
item.name = name
item.save()
def configuration_items(apps, schema_editor):
create_item(apps, KIT_RECIPIENT_EMAIL_CONFIGURATION_TYPE, "kit.receipents@lu;with.semicolon@separation.lu",
"Recipients of kit requests email")
create_item(apps, KIT_EMAIL_HOUR_CONFIGURATION_TYPE, "17:00",
"At what time kit request emails should be sent")
create_item(apps, KIT_EMAIL_DAY_OF_WEEK_CONFIGURATION_TYPE, "FRIDAY",
"At what weekday kit request emails should be sent")
class Migration(migrations.Migration):
dependencies = [
('web', '0031_appointment_post_mail_sent'),
]
operations = [
migrations.RunPython(configuration_items),
]
......@@ -30,3 +30,7 @@ CONTACT_TYPES_CHOICES = (
CANCELLED_APPOINTMENT_COLOR_CONFIGURATION_TYPE = "CANCELLED_APPOINTMENT_COLOR"
NO_SHOW_APPOINTMENT_COLOR_CONFIGURATION_TYPE = "NO_SHOW_APPOINTMENT_COLOR"
KIT_RECIPIENT_EMAIL_CONFIGURATION_TYPE = "KIT_RECIPIENT_EMAIL_CONFIGURATION_TYPE"
KIT_EMAIL_HOUR_CONFIGURATION_TYPE = "KIT_DAILY_EMAIL_HOUR_CONFIGURATION_TYPE"
KIT_EMAIL_DAY_OF_WEEK_CONFIGURATION_TYPE = "KIT_EMAIL_DAY_OF_WEEK_CONFIGURATION_TYPE"
# coding=utf-8
from django.core import mail
from django.test import TestCase
from web.email import EmailSender
class TestEmailSender(TestCase):
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